Dopo aver creato un cluster, puoi modificarne i 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 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, vedi 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 node pool è un gruppo di nodi all'interno di un cluster che condividono 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 mostra come aggiornare un singolo parametro alla volta.
Modifica la versione pool di nodi
In GKE su AWS, la modifica della versione di un pool di nodi comporta la modifica della versione di GKE in esecuzione sui nodi delpool di nodil.
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 supportata Google Cloud che gestisce il cluster. Ad esempio:us-west1
.NODE_POOL_VERSION
: la nuova versionepool di nodil supportata.
Aggiorna il tipo di istanza pool di nodi
Un tipo di istanza pool di nodi è il tipo di istanza AWS EC2 utilizzato per creare
i nodi in unpool di nodil. 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 comando seguente:
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 tuo 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 del tipo di istanza del pool di nodi non devono modificare l'architettura della CPU sottostante 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 sottostanti, consulta 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 pool di nodi, vedi Rotazione delle chiavi.
Sostituisci i gruppi di sicurezza del pool di nodi
Per aggiornare i gruppi di sicurezza collegati a un pool di nodi, esegui questo 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 1.25 o versioni successive, l'aggiornamento può essere eseguito dinamicamente senza riavviare i nodi. Questo è l'approccio consigliato per i cluster che utilizzano GKE v1.25 o versioni successive.
Per eseguire aggiornamenti dinamici, il ruolo del service agent API deve disporre delle seguenti autorizzazioni AWS IAM:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Queste autorizzazioni vengono assegnate automaticamente al ruolo di agente di servizio API se scegli il ruolo di agente di servizio API predefinito quando crei 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 in sequenza. Gli aggiornamenti in sequenza sono più distruttivi degli aggiornamenti dinamici perché riavviano i nodi, mentre gli aggiornamenti dinamici non lo fanno. Per ulteriori informazioni sugli aggiornamenti di incremento, vedi Aggiornamenti di incremento.
Rimuovi i gruppi di sicurezza del pool di nodi
Puoi rimuovere tutti i gruppi di sicurezza non predefiniti collegati al node pool eseguendo il seguente comando. Per saperne di più sui gruppi di sicurezza predefiniti, consulta Gruppi di sicurezza del 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 supportata Google Cloud che gestisce il cluster. Ad esempio:us-west1
.MIN_NODES
: il numero minimo di nodi che il pool di nodi può contenere. Il valore può essere0
o un numero maggiore.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 workload.
Azioni di ridimensionamento e relative conseguenze
Quando ridimensioni i pool di nodi, vengono attivate azioni diverse in base alla nuova configurazione e allo stato attuale dei nodi. È fondamentale comprendere queste azioni e le loro implicazioni:
- Nessuna modifica: se il numero attuale di nodi è già in linea con il nuovo intervallo specificato, GKE su AWS non apporta modifiche al numero di nodi.
- Aumento del 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 nuova dimensione minima definita.
- Riduzione del valore massimo: se modifichi il numero massimo di nodi impostando un valore inferiore al conteggio esistente, GKE su AWS esegue le seguenti azioni:
- Disabilita il gestore della scalabilità automatica dei cluster.
- Imposta il gruppo di scalabilità automatica per il pool di nodi sulla dimensione minima specificata.
- Seleziona singoli nodi da rimuovere. Ogni nodo viene isolato, svuotato delle sue attività e poi terminato. Questa procedura continua fino al raggiungimento della dimensione massima specificata.
- Modifica il gruppo di scalabilità automatica del pool di nodi in modo che sia allineato alla nuova dimensione massima.
- Riattiva il gestore della scalabilità automatica del cluster una volta raggiunta la dimensione massima.
Per saperne di più sul gestore della scalabilità automatica dei cluster, consulta Informazioni sul gestore della scalabilità automatica dei cluster.
Protezione dei workload durante il ridimensionamento
Per garantire la continua disponibilità dei carichi di lavoro durante il ridimensionamento pool di nodi, GKE su AWS fornisce le seguenti misure di salvaguardia:
Durante lo svuotamento di un nodo, 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 vengono impostati per essere riavviati o rimossi, GKE su AWS garantisce l'arresto controllato 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 riuscito, puoi controllare lo stato del pool di nodi eseguendo questo 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 tuo pool di nodi.CLUSTER_NAME
: il nome del tuo cluster.GOOGLE_CLOUD_LOCATION
: la Google Cloud regione che gestisce il tuo cluster.
GKE su 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 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 rispettivi nomi, esegui questo comando:
gcloud container aws operations list--filter="status=PENDING OR status=RUNNING"
--location GOOGLE_CLOUD_LOCATION
Sostituisci GOOGLE_CLOUD_LOCATION
con la
regione supportata Google Cloud
che gestisce il cluster. Ad esempio: us-west1
.
Cerca il OPERATION_NAME
dell'aggiornamento che vuoi annullare nell'output del comando. Per un elenco delle operazioni, vedi
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 supportata Google Cloud che gestisce il cluster. Ad esempio:us-west1
.
Tieni presente che l'annullamento di un aggiornamento del pool di nodi in corso non ripristina gli aggiornamenti dei nodi che sono già stati completati. Ciò può comportare un pool di nodi aggiornato parzialmente.