Questa pagina fornisce istruzioni su come aggiornare dinamicamente le etichette dei nodi e i taint dei nodi di un pool di nodi esistente in un cluster Google Kubernetes Engine (GKE) Standard.
Puoi anche applicare e aggiornare dinamicamente i tag di rete nei cluster GKE Autopilot o Standard. Per istruzioni, consulta Utilizzare i tag di rete per applicare regole firewall ai nodi.
Panoramica
Le incompatibilità e le etichette dei nodi si trovano nei metadati degli oggetti dei nodi Kubernetes. Le etichette vengono utilizzate per pianificare i pod su nodi particolari, mentre le incompatibilità possono essere utilizzate per allontanare i pod da questi nodi.
Utilizzando l'API GKE, puoi applicare aggiornamenti alle etichette dei nodi e ai taint dei nodi di un pool di nodi GKE esistente senza dover ricreare il pool di nodi o interrompere i workload in esecuzione. La configurazione aggiornata del node pool viene conservata in GKE, in modo che i futuri upgrade pool di nodi e il provisioning di nuovi nodi nel pool di nodi utilizzino la nuova configurazione.
Limitazioni
Esistono alcune limitazioni per l'utilizzo dell'API GKE per aggiornare dinamicamente le configurazioni del pool di nodi:
- La versione del pool di nodi deve essere 1.19.7-gke.1500 o successiva.
- La versione del control plane del cluster deve essere 1.23.4-gke.300 o successive per applicare gli aggiornamenti alle etichette dei nodi o ai taint dei nodi per i pool di nodi esistenti con il gestore della scalabilità automatica del cluster abilitato. Per i cluster nelle versioni precedenti, puoi utilizzare la seguente soluzione alternativa: Disattiva la scalabilità automatica nel pool di nodi, quindi aggiorna le etichette e/o i taint dei nodi. Dopo l'applicazione degli aggiornamenti, riattiva la scalabilità automatica.
Aggiornamento delle etichette dei nodi
Per aggiornare le etichette dei nodi per un pool di nodi, utilizza il seguente comando:
gcloud container node-pools update NODEPOOL_NAME \
--node-labels=[NODE_LABEL,...] \
--cluster=CLUSTER_NAME
--location=CONTROL_PLANE_LOCATION
[GCLOUD_WIDE_FLAG …]
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del pool di nodi da aggiornare.[NODE_LABEL,...]
: le nuove etichette dei nodi desiderate (ad esempio,label1=value1,label2=value2
).CLUSTER_NAME
: il nome del cluster.CONTROL_PLANE_LOCATION
: la posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Aggiornamento delle incompatibilità dei nodi
Per aggiornare i taint dei nodi per un pool di nodi, utilizza questo comando:
gcloud container node-pools update NODEPOOL_NAME \
--node-taints=[NODE_TAINT,...] \
--cluster=CLUSTER_NAME
--location=CONTROL_PLANE_LOCATION
[GCLOUD_WIDE_FLAG …]
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del pool di nodi da aggiornare.[NODE_TAINT,...]
: i nuovi taint dei nodi desiderati (ad esempio,key1=val1:NoSchedule,key2=val2:PreferNoSchedule
).CLUSTER_NAME
: il nome del cluster.CONTROL_PLANE_LOCATION
: la posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Passaggi successivi
- Scopri di più sulle incompatibilità dei nodi per controllare la pianificazione.
- Scopri di più sui tag di rete.
- Scopri di più sulle etichette