Aggiunta e gestione dei pool di nodi


Questa pagina mostra come aggiungere ed eseguire operazioni sui pool di nodi che eseguono Google Kubernetes Engine (GKE) Standard cluster. Per ulteriori informazioni su come funzionano i pool di nodi, consulta Informazioni sui nodi piscine.

I cluster possono eseguire operazioni, come il provisioning automatico dei nodi, su pool di nodi in parallelo. Puoi creare, aggiornare o eliminare manualmente un pool di nodi mentre un altro pool di nodi è già in fase di creazione, aggiornamento o eliminazione.

Queste istruzioni non si applicano ai cluster Autopilot, GKE gestisce i nodi e non esistono pool di nodi a cui gestire. Per saperne di più, visita la pagina Autopilot Panoramica.

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.

Aggiungi un pool di nodi a un cluster standard

Puoi aggiungere un nuovo pool di nodi a un cluster GKE Standard utilizzando gcloud CLI, la console Google Cloud o Terraform. GKE supporta anche provisioning automatico dei nodi, che gestisce automaticamente i pool di nodi nel tuo cluster in base alla scalabilità i tuoi requisiti.

Come best practice in entrambi i casi, ti consigliamo di creare e utilizzare un Account di servizio Identity and Access Management (IAM) con privilegi minimi per il nodo da utilizzare al posto Account di servizio predefinito Compute Engine. Per istruzioni su come creare un account di servizio con privilegi minimi, consulta Rafforzamento della sicurezza del cluster.

gcloud

Per creare un pool di nodi, esegui gcloud container node-pools create :

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --service-account SERVICE_ACCOUNT

Sostituisci quanto segue:

  • POOL_NAME: il nome del nuovo pool di nodi.
  • CLUSTER_NAME: il nome del cluster esistente.
  • SERVICE_ACCOUNT: il nome della piattaforma IAM l'account di servizio desiderato da utilizzare per i nodi. Se omesso, il pool di nodi utilizza la classe Account di servizio predefinito Compute Engine.
  • Per eseguire il provisioning dei nodi tramite indirizzi IP privati, aggiungi il flag --enable-private-nodes. Puoi usare questo flag nei cluster pubblici che utilizzano Private Service Connect. Per verificare se il cluster utilizza Private Service Connect, consulta Cluster pubblici con Private Service Connect.

Per un elenco completo dei flag facoltativi che puoi specificare, fai riferimento gcloud container node-pools create documentazione.

L'output è simile al seguente:

Creating node pool POOL_NAME...done.
Created [https://container.googleapis.com/v1/projects/PROJECT_ID/zones/us-central1/clusters/CLUSTER_NAME/nodePools/POOL_NAME].
NAME: POOL_NAME
MACHINE_TYPE: e2-medium
DISK_SIZE_GB: 100
NODE_VERSION: 1.21.5-gke.1302

In questo output vengono visualizzati i dettagli del pool di nodi, ad esempio la macchina e la versione GKE in esecuzione sui nodi.

A volte, il pool di nodi viene creato correttamente, ma il comando gcloud si verifica un timeout invece di segnalare lo stato dal server. Per controllare di tutti i pool di nodi, inclusi quelli di cui non è ancora stato completato il provisioning, utilizza seguente comando:

gcloud container node-pools list --cluster CLUSTER_NAME

Console

Per aggiungere un pool di nodi a un cluster Standard esistente, esegui la seguenti passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster Standard che che si desidera modificare.

  3. Fai clic su Aggiungi pool di nodi.

  4. Configura il pool di nodi.

  5. Nel menu di navigazione, fai clic su Sicurezza.

  6. Nel menu a discesa Account di servizio, seleziona IAM l'account di servizio che il pool di nodi potrà utilizzare. Per impostazione predefinita, il pool di nodi utilizza Account di servizio predefinito Compute Engine.

  7. Fai clic su Crea per aggiungere il pool di nodi.

Terraform

Per aggiungere un pool di nodi a un cluster standard esistente utilizzando Terraform, fai riferimento all'esempio seguente:

resource "google_container_node_pool" "default" {
  name    = "gke-standard-regional-node-pool"
  cluster = google_container_cluster.default.name

  node_config {
    service_account = google_service_account.default.email
  }
}

Per saperne di più sull'utilizzo di Terraform, consulta Supporto Terraform per GKE.

Visualizza i pool di nodi in un cluster standard

gcloud

Per elencare tutti i pool di nodi di un cluster Standard, esegui gcloud container node-pools list :

gcloud container node-pools list --cluster CLUSTER_NAME

Per visualizzare i dettagli di uno specifico pool di nodi, esegui il gcloud container node-pools describe :

gcloud container node-pools describe POOL_NAME \
    --cluster CLUSTER_NAME

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster.
  • POOL_NAME: il nome del pool di nodi da visualizzare.

Console

Per visualizzare i pool di nodi per un cluster Standard, esegui queste operazioni: passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster Standard.

  3. Fai clic sulla scheda Nodi.

  4. In Pool di nodi, fai clic sul nome del pool di nodi che vuoi visualizzare.

Scala un pool di nodi

Puoi fare lo scale up o lo scale down dei tuoi pool di nodi per ottimizzare prestazioni e costi. Con i pool di nodi GKE Standard, puoi scalare un pool di nodi orizzontalmente modificando il numero di nodi nel nodo o scalare verticalmente un pool di nodi modificando la configurazione degli attributi di macchina dei nodi.

Scala orizzontalmente modificando il numero di nodi

gcloud

Per ridimensionare i pool di nodi di un cluster, esegui gcloud container clusters resize :

gcloud container clusters resize CLUSTER_NAME \
    --node-pool POOL_NAME \
    --num-nodes NUM_NODES

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster da ridimensionare.
  • POOL_NAME: il nome del pool di nodi da ridimensionare.
  • NUM_NODES: il numero di nodi nel pool in un ambiente in un cluster Kubernetes. Se utilizzi cluster multi-zona o a livello di regione, NUM_NODES è il numero di nodi per ogni zona in cui si trova il pool di nodi.

Ripeti questo comando per ciascun pool di nodi. Se il cluster ha un solo nodo pool, ometti il flag --node-pool.

Console

Per ridimensionare i pool di nodi di un cluster, segui questi passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster Standard che che si desidera modificare.

  3. Fai clic sulla scheda Nodi.

  4. Nella sezione Pool di nodi, fai clic sul nome del pool di nodi da ridimensionare.

  5. Fai clic su Ridimensiona.

  6. Nel campo Numero di nodi, inserisci il numero di nodi che vuoi in il pool di nodi e fai clic su Ridimensiona.

  7. Ripeti l'operazione per ogni pool di nodi in base alle tue esigenze.

Scala verticalmente modificando gli attributi della macchina del nodo

Puoi modificare il tipo di macchina configurato, il tipo di disco e il disco dimensioni.

Quando modifichi uno o più di questi attributi, GKE aggiorna i nodi alla nuova configurazione utilizzando l'upgrade di strategia configurato per il pool di nodi. Se configuri lo stato blu-verde esegui l'upgrade di strategia puoi eseguire la migrazione dei carichi di lavoro dai nodi originali a quelli nuovi, eseguire il rollback dei nodi originali in caso di errore della migrazione. Ispeziona delle impostazioni di upgrade del nodo piscina per assicurarti che la strategia configurata sia il modo in cui vuoi aggiornare i nodi.

Aggiorna almeno uno degli attributi della macchina evidenziati nei seguenti :

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --machine-type MACHINE_TYPE \
    --disk-type DISK_TYPE \
    --disk-size DISK_SIZE

Ometti eventuali flag per gli attributi della macchina che non vuoi modificare. Tuttavia, devi utilizzare almeno un flag di attributo della macchina, altrimenti il comando non riesce.

Sostituisci quanto segue:

  • POOL_NAME: il nome del pool di nodi da ridimensionare.
  • CLUSTER_NAME: il nome del cluster da ridimensionare.
  • MACHINE_TYPE: tipo di macchina da utilizzare per i nodi. Per saperne di più, consulta gcloud container node-pools update.
  • DISK_TYPE: il tipo del disco di avvio della VM del nodo deve essere pd-standard, pd-ssd, pd-balanced.
  • DISK_SIZE: la dimensione in GB dei dischi di avvio delle VM del nodo. Il valore predefinito è 100 GB.

Esegui l'upgrade di un pool di nodi

Per impostazione predefinita, i nodi di un cluster upgrade automatico è attivata ed è consigliabile non disattivare . Nodo gli upgrade automatici assicurano che il piano di controllo e la versione dei nodi del tuo cluster restino sincronizzato e conforme al disallineamento delle versioni di Kubernetes , che garantisce che sono compatibili con nodi fino a due versioni secondarie precedenti al dal piano di controllo. Ad esempio, i piani di controllo Kubernetes 1.29 sono compatibili di Kubernetes 1.27.

Con gli upgrade del pool di nodi GKE, puoi scegliere tra due strategie di upgrade configurabili, ovvero upgrade intensivo e upgrade blu/verde.

Scegli una strategia e usa i parametri per mettere a punto la strategia in base alle tue esigenze in base alle esigenze dell'ambiente cluster.

Durante l'upgrade di un nodo, GKE smette di pianificare nuovi pod e tenta di pianificare i pod in esecuzione su altri nodi. Questo è in modo simile ad altri eventi che ricreano il nodo, come l'abilitazione o la disabilitazione di un sul pool di nodi.

L'upgrade è completo solo quando tutti i nodi sono stati ricreati e il cluster si trova nello stato desiderato. Quando un nodo con upgrade appena eseguito si registra con il piano di controllo, GKE contrassegna il nodo come pianificabile.

Le nuove istanze dei nodi eseguono la versione Kubernetes desiderata, oltre a:

Upgrade manuale di un pool di nodi

Puoi eseguire manualmente l'upgrade di una versione del pool di nodi affinché corrisponda alla versione del controllo o a una versione precedente che sia ancora disponibile e compatibile con il piano di controllo. Puoi eseguire manualmente l'upgrade di più pool di nodi in parallelo, mentre GKE esegue automaticamente l'upgrade di un solo pool di nodi alla volta.

Quando esegui manualmente l'upgrade di un pool di nodi, GKE rimuove eventuali etichette aggiunti a singoli nodi utilizzando kubectl. Per evitare questo problema, applica etichette ai pool di nodi .

Puoi eseguire manualmente l'upgrade dei pool di nodi a una versione compatibile con utilizzando la console Google Cloud o Google Cloud CLI.

gcloud

Nei comandi di questa sezione vengono utilizzate le seguenti variabili:

  • CLUSTER_NAME: il nome del cluster del nodo di cui eseguire l'upgrade.
  • NODE_POOL_NAME: il nome del pool di nodi da utilizzare con upgrade eseguito.
  • VERSION: la versione Kubernetes a cui viene eseguito l'upgrade dei nodi. Ad esempio, --cluster-version=1.7.2 o cluster-version=latest.

Esegui l'upgrade di un pool di nodi:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME

Per specificare una versione diversa di GKE sui nodi, utilizza flag facoltativo --cluster-version:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME \
  --cluster-version VERSION

Per ulteriori informazioni su come specificare le versioni, consulta la sezione Controllo delle versioni.

Per ulteriori informazioni, consulta gcloud container clusters upgrade.

Console

Per eseguire l'upgrade di un pool di nodi utilizzando la console Google Cloud, segui questi passaggi: passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Accanto al cluster da modificare, fai clic su Azioni e poi su Modifica.

  3. Nella pagina Dettagli cluster, fai clic sulla scheda Nodi.

  4. Nella sezione Pool di nodi, fai clic sul nome del pool di nodi vuoi eseguire l'upgrade.

  5. Fai clic su Modifica.

  6. Fai clic su Cambia in Versione nodo.

  7. Seleziona la versione desiderata dall'elenco a discesa Versione nodo, quindi Fai clic su Cambia.

Esegui il deployment di un pod in un pool di nodi specifico

Puoi eseguire esplicitamente il deployment di un pod in un pool di nodi specifico utilizzando una nodeSelector nel manifest del pod. nodeSelector pianifica i pod in nodi con un'etichetta corrispondente.

Tutti i pool di nodi GKE hanno etichette con il seguente formato: cloud.google.com/gke-nodepool: POOL_NAME. Aggiungi questa etichetta al campo nodeSelector nel pod come mostrato in nell'esempio seguente:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    cloud.google.com/gke-nodepool: POOL_NAME

Per ulteriori informazioni, vedi Assegnazione di pod ai nodi.

In alternativa al selettore dei nodi, puoi utilizzare l'affinità dei nodi. Utilizza l'affinità nodo se vuoi un approccio "soft" in cui il pod tenta di soddisfare il vincolo, ma viene comunque pianificato anche se del vincolo non può essere soddisfatto. Per ulteriori informazioni, vedi Affinità nodo. Puoi anche specifica le richieste di risorse per i container.

Eseguire il downgrade di un pool di nodi

Puoi eseguire il downgrade di un pool di nodi, ad esempio, per mitigare upgrade del pool di nodi non riuscito. Esamina il limitazioni prima di eseguire il downgrade di un pool di nodi.

  1. Impostare un'esclusione per la manutenzione del cluster per impedire l'upgrade automatico del pool di nodi GKE dopo il downgrade.
  2. Per eseguire il downgrade di un pool di nodi, specifica una versione precedente seguendo le le istruzioni per eseguire l'upgrade manuale di un pool di nodi.

Elimina un pool di nodi

L'eliminazione di un pool di nodi elimina i nodi e tutti i carichi di lavoro in esecuzione, non rispettando PodDisruptionBudget impostazioni. Per saperne di più su come questo influisce sui tuoi carichi di lavoro, tra cui interazioni con i selettori dei nodi, consulta Eliminazione dei piscine.

gcloud

Per eliminare un pool di nodi, esegui gcloud container node-pools delete :

gcloud container node-pools delete POOL_NAME \
    --cluster CLUSTER_NAME

Console

Per eliminare un pool di nodi, segui questi passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster Standard che che si desidera modificare.

  3. Fai clic sulla scheda Nodi.

  4. Nella sezione Pool di nodi, fai clic su accanto al pool di nodi che vuoi eliminare.

  5. Quando ti viene richiesto di confermare, fai clic su Elimina.

Risoluzione dei problemi

Per informazioni sulla risoluzione dei problemi, vedi Risolvere i problemi dei pool di nodi standard e Risolvi i problemi di registrazione dei nodi.

Passaggi successivi