Dopo aver creato un cluster, puoi modificare i relativi pool di nodi. È possibile aggiornare solo alcuni parametri di un pool di nodi, ad esempio le dimensioni, la chiave di crittografia e i gruppi di sicurezza. Questo documento spiega come eseguire questi e altri aggiornamenti comuni a un pool di nodi.
Tuttavia, questo documento non fornisce un elenco esaustivo dei comandi di aggiornamento.
Se devi aggiornare un parametro non descritto in questo documento, consulta gcloud container aws node-pools
update
e la documentazione di projects.locations.awsNodePools.patch
.
Prima di iniziare
Per aggiornare un pool di nodi, devi disporre della seguente autorizzazione Identity and Access Management:
gkemulticloud.googleapis.com/awsNodePools.update
.
Per istruzioni su come gestire le autorizzazioni, consulta Concedere ruoli IAM agli utenti.
Aggiornamento di un pool di nodi
Le sezioni seguenti spiegano come apportare vari aggiornamenti a un pool di nodi. Un pool di nodi è un gruppo di nodi all'interno di un cluster che hanno la stessa configurazione. Tutti i nodi di un cluster devono appartenere a un pool di nodi.
Puoi aggiornare più parametri di un pool di nodi contemporaneamente specificandoli tutti nello stesso comando. Tuttavia, per maggiore chiarezza, questo documento illustra come aggiornare un singolo parametro alla volta.
Modificare la versione pool di nodi
In GKE su AWS, la modifica della versione di un pool di nodi comporta la modifica della versione GKE in esecuzione sui nodi del pool.
Per modificare la versione del pool di nodi, specifica la nuova versione utilizzando il flag node-version
nel seguente comando:
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--node-version NODE_POOL_VERSION
Sostituisci quanto segue:
NODE_POOL_NAME
: il nome del pool di nodi da aggiornare.CLUSTER_NAME
: il nome del cluster a cui collegare il pool di nodi.GOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il tuo cluster. Ad esempio:us-west1
.NODE_POOL_VERSION
: la nuova versione del pool di nodi supportata.
Aggiorna il tipo di istanza pool di nodi
Un tipo di istanza del pool di nodi è il tipo di istanza AWS EC2 utilizzata per creare i nodi in un pool di nodi. Ad esempio, il tipo di istanza m5.xlarge
ha 4 vCPU, 16 GB di memoria e 32 GB di spazio di archiviazione SSD.
Per modificare il tipo di istanza del pool di nodi, specifica il nuovo tipo di istanza utilizzando il flag instance-type
nel seguente comando:
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--instance-type=INSTANCE_TYPE
Sostituisci quanto segue:
NODE_POOL_NAME
: il nome del pool di nodi.CLUSTER_NAME
: il nome del tuo cluster.GOOGLE_CLOUD_LOCATION
: la Google Cloud regione che gestisce il tuo cluster.INSTANCE_TYPE
: il nuovo tipo di istanza macchina AWS per questo pool di nodi. Ad esempio,m5.xlarge
.
Gli aggiornamenti al tipo di istanza del pool di nodi non devono modificare l'architettura della CPU di base dell'istanza EC2. Ad esempio, se il pool di nodi originale utilizza istanze con CPU x86, il tipo di istanza aggiornato deve continuare a utilizzare CPU x86 anziché un'altra architettura.
Per un elenco completo delle istanze supportate e delle relative architetture di base, consulta i tipi di istanze AWS supportati.
Ruotare la chiave di crittografia di un pool di nodi
Per informazioni su come aggiornare le chiavi di crittografia KMS del tuo pool di nodi, consulta Rotazione delle chiavi.
Sostituire i gruppi di sicurezza del pool di nodi
Per aggiornare i gruppi di sicurezza associati a un pool di nodi, esegui il seguente comando:
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--security-group-ids=SECURITY_GROUP_IDS
Sostituisci quanto segue:
NODE_POOL_NAME
: il nome del pool di nodi da aggiornare.CLUSTER_NAME
: il nome del tuo cluster.GOOGLE_CLOUD_LOCATION
: la Google Cloud regione che gestisce il tuo cluster.SECURITY_GROUP_IDS
: un elenco separato da virgole di gruppi di sicurezza da collegare al pool di nodi.
Per i cluster che eseguono GKE versione 1.25 o successive, l'aggiornamento può essere eseguito dinamicamente senza riavviare i nodi. Questo è l'approccio consigliato per i cluster che utilizzano GKE 1.25 o versioni successive.
Per eseguire aggiornamenti dinamici, il ruolo agente di servizio API deve disporre delle seguenti autorizzazioni IAM di AWS:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Queste autorizzazioni vengono assegnate automaticamente al ruolo dell'agente di servizio API se scelgo il ruolo predefinito dell'agente di servizio API quando creo il cluster.
Per i cluster che eseguono versioni precedenti di GKE o versioni 1.25 o successive, ma l'agente di servizio API non dispone delle autorizzazioni per eseguire un aggiornamento dinamico, l'aggiornamento viene eseguito utilizzando un aggiornamento progressivo. Gli aggiornamenti in sequenza sono più invasivi degli aggiornamenti dinamici perché riavviano i nodi, mentre gli aggiornamenti dinamici no. Per ulteriori informazioni sugli aggiornamenti graduali, consulta Aggiornamenti di picco.
Rimuovere i gruppi di sicurezza del pool di nodi
Puoi rimuovere tutti i gruppi di sicurezza non predefiniti associati al tuo pool di nodi eseguendo il seguente comando. Per ulteriori informazioni sui gruppi di sicurezza predefiniti, consulta Gruppi di sicurezza dei node pool.
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--clear-security-group-ids
Sostituisci quanto segue:
NODE_POOL_NAME
: il nome del pool di nodi da aggiornare.CLUSTER_NAME
: il nome del tuo cluster.GOOGLE_CLOUD_LOCATION
: la Google Cloud regione che gestisce il tuo cluster.
Ridimensiona un node pool
Per modificare le dimensioni del pool di nodi (ovvero il numero di nodi nel
pool di nodi), assegna nuovi valori ai flag min-nodes
e max-nodes
nel
seguente comando:
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES
Sostituisci quanto segue:
NODE_POOL_NAME
: il nome del pool di nodi da aggiornare.CLUSTER_NAME
: il nome del cluster a cui collegare il pool di nodi.GOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il tuo cluster. Ad esempio:us-west1
.MIN_NODES
: il numero minimo di nodi che il pool di nodi può contenere. Il valore può essere0
o superiore.MAX_NODES
: il numero massimo di nodi che il pool di nodi può contenere. Il valore deve essere almeno1
e maggiore o uguale al valore diMIN_NODES
.
Ulteriori dettagli sul ridimensionamento dei node pool
Prima di ridimensionare un pool di nodi, è importante valutare le potenziali ripercussioni sui tuoi carichi di lavoro.
Azioni di ridimensionamento e relative conseguenze
Quando redimensioni i pool di nodi, vengono attivate azioni diverse in base alla nuova configurazione e allo stato corrente dei nodi. È fondamentale comprendere queste azioni e le relative implicazioni:
- Nessuna modifica: se il numero di nodi corrente è già in linea con il nuovo intervallo specificato, GKE su AWS non apporta modifiche al numero di nodi.
- Aumento del valore minimo: se il nuovo numero minimo di nodi è impostato su un valore superiore al conteggio esistente, GKE su AWS aggiunge nodi in modo incrementale fino a raggiungere la dimensione minima appena definita.
- Riduzione del valore massimo: se modifichi il numero massimo di nodi impostandolo su un valore inferiore a quello esistente, GKE su AWS esegue le seguenti azioni:
- Disattiva il gestore della scalabilità automatica del cluster.
- Imposta il gruppo di scalabilità automatica per il pool di nodi sulla dimensione minima specificata.
- Consente di selezionare i singoli nodi da rimuovere. Ogni nodo viene messo in isolamento, viene svuotato delle sue attività e poi terminato. Questa procedura continua fino a quando non viene raggiunta la dimensione massima specificata.
- Modifica il gruppo di scalabilità automatica del pool di nodi in modo che sia in linea con la nuova dimensione massima.
- Riattiva il gestore della scalabilità automatica del cluster una volta raggiunta la dimensione massima.
Per ulteriori informazioni sul gestore della scalabilità automatica dei cluster, consulta Informazioni sul gestore della scalabilità automatica dei cluster.
Protezione dei carichi di lavoro durante il ridimensionamento
Per garantire la disponibilità continua dei carichi di lavoro durante il ridimensionamento pool di nodi, GKE su AWS fornisce le seguenti salvaguardie:
Durante lo svuotamento dei nodi, GKE su AWS rispetta la configurazione
PodDisruptionBudget
per un massimo di un'ora. I pod rimanenti sul nodo dopo questo periodo vengono eliminati.Quando i nodi sono impostati per essere riavviati o rimossi, GKE su AWS ne garantisce l'arresto graduale e attende fino a due ore. Se i pod rimangono sul nodo dopo questo periodo, l'istanza di macchina virtuale sottostante viene eliminata.
Controllare lo stato del pool di nodi
Per verificare che l'aggiornamento sia andato a buon fine, puoi controllare lo stato del pool di nodi eseguendo il seguente comando:
gcloud container aws node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
Sostituisci quanto segue:
NODE_POOL_NAME
: il nome del pool di nodi.CLUSTER_NAME
: il nome del tuo cluster.GOOGLE_CLOUD_LOCATION
: la Google Cloud regione che gestisce il tuo cluster.
GKE on AWS tenta di eseguire gli aggiornamenti richiesti al pool di nodi e poi esegue un controllo di integrità. Se uno dei passaggi di aggiornamento non va a buon fine, lo stato del pool di nodi viene contrassegnato come DEGRADED
.
Annullare un'operazione di aggiornamento
Prima di poter annullare un aggiornamento del pool di nodi in corso, devi determinare il nome dell'operazione in corso. Per elencare le operazioni in corso e i relativi nomi, esegui il seguente comando:
gcloud container aws operations list--filter="status=PENDING OR status=RUNNING"
--location GOOGLE_CLOUD_LOCATION
Sostituisci GOOGLE_CLOUD_LOCATION
con la
regione Google Cloud supportata
che gestisce il tuo cluster. Ad esempio: us-west1
.
Cerca il OPERATION_NAME
dell'aggiornamento che vuoi annullare nell'output del comando. Per un elenco delle operazioni, consulta
gcloud container aws operations list.
Una volta identificato il OPERATION_NAME
, puoi annullare l'operazione con il seguente comando:
gcloud container aws operations cancel OPERATION_NAME
--location GOOGLE_CLOUD_LOCATION
Sostituisci quanto segue:
OPERATION_NAME
: il nome dell'operazione di aggiornamento.GOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il tuo cluster. Ad esempio:us-west1
.
Tieni presente che l'annullamento di un aggiornamento in corso del pool di nodi non ripristina gli aggiornamenti dei nodi che sono già stati completati. Ciò può comportare un pool di nodi parzialmente aggiornato.