Questa pagina spiega come eseguire una rotazione IP per il piano di controllo nei cluster Google Kubernetes Engine (GKE).
Prima di leggere questa pagina, assicurati di avere familiarità con la rotazione delle credenziali. Ti consigliamo di eseguire una rotazione delle credenziali, che include la rotazione dell'IP. Tuttavia, potresti dover eseguire una rotazione IP autonoma se non riesci a eseguire una rotazione completa delle credenziali.
Questa pagina è rivolta agli esperti di sicurezza che gestiscono il ciclo di vita del cluster su GKE. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti, consulta Ruoli e attività comuni degli utenti GKE. Trusted Cloud by S3NS
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione
eseguendo
gcloud components update
.
Eseguire una rotazione degli indirizzi IP
La rotazione degli indirizzi IP è un processo in più passaggi:
- Quando avvii una rotazione IP, il control plane inizia a gestire il nuovo indirizzo IP oltre all'indirizzo IP originale.
- GKE ricrea i tuoi node pool per utilizzare il nuovo indirizzo IP, rispettando la disponibilità per la manutenzione. Puoi anche ricreare manualmente i tuoi node pool eseguendo l'upgrade della versione pool di nodi alla stessa versione GKE già in esecuzione sui nodi.
- Dopo aver avviato una rotazione, devi aggiornare i client API del cluster
(ad esempio le macchine di sviluppo che utilizzano l'interfaccia a riga di comando
kubectl
) per iniziare a comunicare con il control plane tramite il nuovo indirizzo IP. - Al termine della rotazione, il control plane interrompe l'erogazione del traffico con l'indirizzo IP precedente.
Quando avvii una rotazione degli indirizzi IP, GKE ricrea i nodi rispettando la disponibilità della manutenzione. Durante eventi importanti come Trusted Cloud Successivamente, GKE potrebbe mettere in pausa la ricreazione automatica dei nodi per evitare interruzioni. Per saperne di più su come la disponibilità della manutenzione influisce sulla rotazione degli IP e sul tipo di interruzione che si verifica nel cluster durante i passaggi di una rotazione, consulta la riga relativa alla rotazione degli IP nella tabella delle modifiche manuali che ricreano i nodi utilizzando una strategia di upgrade dei nodi e rispettando le norme di manutenzione. GKE dipende dalla disponibilità delle risorse per l'aggiornamento dei nodi. Per saperne di più sugli aggiornamenti dei nodi, consulta Pianificare le interruzioni dell'aggiornamento dei nodi.
Se non completi una rotazione degli indirizzi IP entro sette giorni dall'inizio, GKE tenta di completare la rotazione per te. Se alcuni nodi del cluster utilizzano ancora l'indirizzo IP precedente, l'operazione di completamento automatico non va a buon fine, ma GKE continua a tentare il completamento finché i nodi non vengono ricreati e l'operazione non può essere completata.
Devi pianificare il monitoraggio e il completamento manuali della rotazione degli indirizzi IP dopo averla avviata. Puoi sempre ignorare la disponibilità della manutenzione e attivare manualmente passaggi specifici per garantire il completamento della rotazione delle credenziali. Non fare affidamento sul completamento automatico, che è una misura basata sul massimo impegno.
Avviare la rotazione
Per avviare una rotazione IP, esegui questo comando:
gcloud container clusters update CLUSTER_NAME \ --start-ip-rotation
Sostituisci
CLUSTER_NAME
con il nome del cluster.L'output è simile al seguente:
This will start an IP Rotation on cluster CLUSTER_NAME. The master will be updated to serve on a new IP address in addition to the current IP address. Google Kubernetes Engine will then schedule recreation of all nodes to point to the new IP address. If maintenance window is used, nodes are not recreated until a maintenance window occurs. See documentation on how to manually update nodes. This operation is long-running and will block other operations on the cluster (including delete) until it has run to completion. Do you want to continue (Y/n)?
Questo comando configura il piano di controllo in modo che venga eseguito su due indirizzi IP: l'indirizzo originale e un nuovo indirizzo.
Conferma la rotazione e lascia aperta la shell per completare l'operazione.
Ricrea i nodi
Dopo aver riconfigurato il server API per la pubblicazione su un nuovo indirizzo IP, GKE aggiorna automaticamente i nodi in modo che utilizzino il nuovo indirizzo IP. GKE esegue l'upgrade di tutti i nodi alla versione del nodo supportata più vicina, ricreandoli. Per ulteriori informazioni, consulta Upgrade dei node pool.
Per impostazione predefinita, GKE completa automaticamente le rotazioni degli indirizzi IP sette giorni dopo l'inizio dell'operazione. Se una periodo di manutenzione attiva o un'esclusione nel cluster impedisce a GKE di ricreare alcuni nodi durante questo periodo di sette giorni, la rotazione degli indirizzi IP inizialmente non viene completata. Tuttavia, GKE continua a tentare di ricreare i nodi e completare la rotazione finché la disponibilità della manutenzione non consente a GKE di procedere.
Se utilizzi esclusioni dalla manutenzione o finestre di manutenzione che potrebbero comportare un errore di rotazione, esegui l'upgrade manuale del cluster per forzare la ricreazione dei nodi:
gcloud container clusters upgrade CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --cluster-version=VERSION
Sostituisci
VERSION
con la stessa versione di GKE già utilizzata dal cluster.Per saperne di più, consulta Manutenzione automatica che rispetta le policy di manutenzione di GKE.
Controllare l'avanzamento della ricreazione del pool di nodi
Per monitorare l'operazione di rotazione, esegui questo comando:
gcloud container operations list \ --filter="operationType=UPGRADE_NODES AND status=RUNNING" \ --format="value(name)"
Questo comando restituisce l'ID operazione dell'operazione di upgrade del nodo.
Per eseguire il polling dell'operazione, trasmetti l'ID operazione al seguente comando:
gcloud container operations wait OPERATION_ID
I pool di nodi vengono ricreati uno alla volta e ognuno ha la propria operazione. Se hai più node pool, utilizza queste istruzioni per eseguire il polling di ogni operazione.
Aggiornare i client API
Dopo aver avviato la rotazione degli IP, devi aggiornare tutti i client API al di fuori del cluster (ad esempio kubectl
sulle macchine degli sviluppatori) in modo che puntino al nuovo indirizzo IP.
Per aggiornare i client API, esegui il seguente comando per ogni client:
gcloud container clusters get-credentials CLUSTER_NAME
Aggiorna gli indirizzi IP hardcoded e le regole firewall
Se hai codificato l'indirizzo IP del control plane nel tuo ambiente o se hai regole firewall che hanno come target l'indirizzo IP del control plane, aggiorna gli indirizzi con il nuovo indirizzo IP. Se completi la rotazione senza aggiornare gli indirizzi IP nelle applicazioni e nelle regole firewall, queste risorse potrebbero subire interruzioni quando GKE smette di pubblicare contenuti sull'indirizzo IP del piano di controllo precedente.
Completa la rotazione
Dopo aver aggiornato i client API all'esterno del cluster, completa la rotazione per configurare il piano di controllo in modo che utilizzi solo il nuovo indirizzo IP.
Per completare la rotazione, esegui questo comando:
gcloud container clusters update CLUSTER_NAME \
--complete-ip-rotation
L'output è simile al seguente:
This will complete the in-progress IP Rotation on cluster CLUSTER_NAME.
The master will be updated to stop serving on the old IP address and only
serve on the new IP address. Make sure all API clients have been updated
to communicate with the new IP address (e.g. by running `gcloud container
clusters get-credentials --project PROJECT_ID --region COMPUTE_REGION
CLUSTER_NAME`). This operation is long-running and will
block other operations on the cluster (including delete) until it has
run to completion.
Se la rotazione degli indirizzi IP non viene completata e restituisce un messaggio di errore simile al seguente, consulta Errore 400: il pool di nodi richiede la ricreazione:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400, message=Node pool "test-pool-1" requires recreation.
Se non completi una rotazione degli indirizzi IP entro sette giorni dall'inizio, GKE tenta di completare la rotazione per te. Se alcuni nodi del cluster utilizzano ancora l'indirizzo IP precedente, potenzialmente a causa della disponibilità di manutenzione e dei vincoli correlati che impediscono la ricreazione dei nodi, il completamento automatico non va a buon fine, ma GKE continua a tentare il completamento finché i nodi non vengono ricreati e l'operazione non può essere completata.