Rotazione dell'IP del piano di controllo


Questa pagina spiega come eseguire una rotazione IP per il piano di controllo in di Google Kubernetes Engine (GKE).

Panoramica

Puoi eseguire una rotazione IP per cambiare l'indirizzo IP che il tuo controllo per gestire le richieste dall'API Kubernetes. L'IP del piano di controllo è statico e non cambia a meno che non venga eseguita una rotazione IP.

La rotazione IP modifica il certificato SSL e l'autorità di certificazione (CA) del cluster, limitando la possibilità di collegare l'indirizzo precedente a quello nuovo.

La rotazione degli IP avviene anche come parte della rotazione delle credenziali.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine .
  • Se vuoi utilizzare Google Cloud CLI per questa attività, install e poi initialize con gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Esegui una rotazione IP

La rotazione degli indirizzi IP è un processo in più fasi:

  1. Quando avvii una rotazione IP, la pubblicazione del piano di controllo inizia sul nuovo indirizzo IP oltre all'indirizzo IP originale.
  2. GKE ricrea i pool di nodi in modo da utilizzare il nuovo indirizzo IP. Tu puoi anche ricreare manualmente i tuoi pool di nodi eseguendo una versione del pool di nodi per l'upgrade alla stessa versione GKE già eseguita dai nodi.
  3. Dopo aver avviato una rotazione, devi aggiornare i client API del cluster (ad esempio macchine di sviluppo che utilizzano l'interfaccia a riga di comando kubectl) per iniziare a comunicare con il piano di controllo tramite il nuovo indirizzo IP.
  4. Una volta completata la rotazione, il piano di controllo smette di gestire il traffico su all'indirizzo IP precedente.

Quando avvii una rotazione dell'indirizzo IP, GKE ricrea i nodi per te. Tuttavia, durante eventi importanti come Google Cloud Next, Mettere in pausa le ricreazioni automatiche dei nodi in modo da non riscontrare interruzioni. Se la rotazione dell'indirizzo IP non viene completata entro sette giorni dall'avvio, GKE tenta di completare la rotazione per te. Se ci sono nodi in il cluster utilizza ancora l'indirizzo IP precedente, il completamento automatico non riesce. Dovresti pianificare di monitorare e completare manualmente la rotazione dell'indirizzo IP dopo avviare la rotazione. Non fare affidamento sul completamento automatico, che è la prassi migliore misurare.

Avvia la rotazione

  1. Per avviare una rotazione IP, esegui il comando seguente:

    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 per l'elaborazione su due indirizzi IP: un indirizzo originale e uno nuovo.

  2. Conferma la rotazione e lascia la shell aperta 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 all'istanza supportata, che ricrea i nodi. Per ulteriori informazioni, consulta Upgrade del pool di nodi.

Per impostazione predefinita, GKE completa automaticamente le rotazioni degli indirizzi IP sette giorni dopo l'avvio dell'operazione. Se è attivo un periodo di manutenzione o un'esclusione nel cluster impedisce a GKE di ricreare alcuni nodi durante questo periodo di sette giorni, la rotazione dell'indirizzo IP non viene completata.

  • Se utilizzi esclusioni di manutenzione o periodi di manutenzione che potrebbero comportare una rotazione non riuscita, esegui manualmente l'upgrade del cluster per forzare la ricreazione dei nodi:

    gcloud container clusters upgrade CLUSTER_NAME \
        --location=LOCATION \
        --cluster-version=VERSION
    

    Sostituisci VERSION con lo stesso GKE già utilizzata dal cluster.

    Per ulteriori informazioni, vedi caveat per i periodi di manutenzione.

Controlla l'avanzamento della ricreazione del pool di nodi

  1. 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.

  2. Per eseguire il polling dell'operazione, passa l'ID operazione al seguente comando:

    gcloud container operations wait OPERATION_ID
    

I pool di nodi vengono ricreati uno alla volta e ognuno ha una propria operazione. Se disponi per più pool di nodi, utilizza queste istruzioni per eseguire il polling di ciascuna operazione.

Aggiornamento client API

Dopo aver avviato la rotazione IP, devi aggiornare tutti i client API al di fuori (ad esempio kubectl sui computer degli sviluppatori) in modo che punti al nuovo IP .

Per aggiornare i client API, esegui questo comando per ogni client:

gcloud container clusters get-credentials CLUSTER_NAME

Aggiorna gli indirizzi IP impostati come hardcoded e le regole del firewall

Se hai eseguito l'hardcoded dell'indirizzo IP del piano di controllo nel tuo ambiente o se se hai regole firewall che hanno come target l'indirizzo IP del piano di controllo, gli indirizzi al nuovo indirizzo IP. Se completi la rotazione senza aggiornare gli indirizzi IP nelle applicazioni e nelle regole firewall, potrebbero verificarsi interruzioni quando GKE interrompe la pubblicazione sul l'indirizzo IP precedente del piano di controllo.

Completa la rotazione

Dopo aver aggiornato i client API all'esterno del cluster, completa la rotazione per configurare per la pubblicazione solo sul 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 dell'indirizzo IP non viene completata e restituisce un messaggio di errore analogamente a quanto segue, fai riferimento Risoluzione dei problemi:

ERROR: (gcloud.container.clusters.update) ResponseError: code=400, message=Node pool "test-pool-1" requires recreation.

Passaggi successivi