Informazioni sui node pool

Questo documento spiega come funzionano i node pool in Google Kubernetes Engine (GKE). Un node pool è un gruppo di nodi all'interno di un cluster Standard che condividono la stessa configurazione. Nella modalità GKE Standard, puoi scegliere tra diverse opzioni per i tuoi node pool per soddisfare le esigenze dei tuoi workload. Se scegli di utilizzare Autopilot, non devi configurare i pool di nodi: GKE gestisce i nodi per te, anche se puoi eseguire manualmente l'upgrade dei pool di nodi gestiti da Autopilot nei cluster Standard, se necessario.

Per scoprire di più sulla creazione di cluster in modalità Standard, consulta Crea un cluster regionale e Crea un cluster zonale. Per scoprire come gestire i node pool nei cluster Standard esistenti, consulta Aggiunta e gestione dei node pool.

Panoramica

Un pool di nodi è un gruppo di nodi all'interno di un cluster che condividono la stessa configurazione. I node pool utilizzano una specifica NodeConfig. Ogni nodo nel pool ha un'etichetta nodo Kubernetes, cloud.google.com/gke-nodepool, il cui valore è il nome del pool di nodi.

Quando crei un cluster in modalità Standard, il numero e il tipo di nodi che specifichi vengono utilizzati per creare il primo pool di nodi del cluster. Per impostazione predefinita, questo primo pool di nodi (noto come pool di nodi predefinito) è costituito da tre nodi in ciascuna delle zone di computing del cluster, con l'immagine del nodo cos_containerd predefinita e un tipo di macchina per uso generico. Puoi specificare una serie di proprietà per il pool di nodi, a seconda dei requisiti del workload. Ad esempio, puoi creare un pool di nodi nel cluster con SSD locali, una piattaforma CPU minima, VM spot, un'immagine nodo diversa, tipi di macchine diversi o un'interfaccia di rete virtuale più efficiente.

Puoi quindi aggiungere al cluster altri pool di nodi di dimensioni e tipi diversi. Tutti i nodi in un dato pool di nodi sono identici tra loro.

I pool di nodi personalizzati sono utili quando devi pianificare pod che richiedono più risorse rispetto ad altri, ad esempio più memoria o più spazio su disco locale. Se hai bisogno di un maggiore controllo sulla posizione in cui vengono pianificati i pod, puoi utilizzare le incompatibilità dei nodi.

Puoi creare, eseguire l'upgrade ed eliminare i pool di nodi singolarmente senza influire sull'intero cluster. Non puoi configurare un singolo nodo in un pool di nodi; qualsiasi modifica alla configurazione influisce su tutti i nodi del pool di nodi.

Puoi ridimensionare i node pool in un cluster aggiungendo o rimuovendo nodi.

Per impostazione predefinita, tutti i nuovi pool di nodi eseguono la stessa versione di Kubernetes del piano di controllo. È possibile eseguire l'upgrade manuale o l'upgrade automatico dei pool di nodi esistenti. Puoi anche eseguire più versioni dei nodi Kubernetes su ogni pool di nodi nel cluster, eseguire l'upgrade di ognipool di nodil in modo indipendente e scegliere come target node pool diversi per deployment specifici.

Node pool gestiti da Autopilot

Nei cluster Standard, oltre ai pool di nodi Standard descritti in questo documento, puoi anche avere pool di nodi gestiti da Autopilot, che vengono creati e gestiti da GKE per le classi di computing di Autopilot. Per maggiori informazioni, consulta Informazioni sui workload in modalità Autopilot in GKE Standard.

Puoi eseguire l'upgrade manuale di questo tipo di pool di nodi. Tuttavia, non puoi eseguire altri tipi di aggiornamenti oltre agli upgrade (modifiche della versione). Inoltre, non puoi eliminare il pool di nodi.

Deployment dei servizi in pool di nodi specifici

Quando definisci un servizio, puoi controllare indirettamente in quale pool di nodi viene eseguito il deployment. Il pool di nodi non dipende dalla configurazione del servizio, ma da quella del pod.

Nodi in cluster multizona

Se hai creato un cluster multizona, tutti i pool di nodi vengono replicati automaticamente in queste zone. Qualsiasi nuovo pool di nodi viene creato automaticamente in queste zone. Allo stesso modo, qualsiasi eliminazione elimina anche i pool di nodi dalle zone aggiuntive.

Tieni presente che, a causa di questo effetto moltiplicativo, la creazione di pool di nodi potrebbe consumare una parte maggiore della quota del progetto per una regione specifica.

Eliminazione dei node pool

Quando elimini un node pool, GKE svuota tutti i nodi nel pool di nodi, eliminando e ripianificando tutti i pod. Il processo di svuotamento prevede l'eliminazione dei pod su ciascun nodo del pool di nodi da parte di GKE. GKE esegue entrambe le operazioni seguenti durante l'eliminazione dei nodi:

  • GKE svuota ogni nodo in un pool di nodi eliminando i pod con un periodo di arresto controllato assegnato di MAX_POD. MAX_POD è il valore massimo terminationGracePeriodSeconds impostato sui pod pianificati sul nodo, con un limite di un'ora.
  • Per impostazione predefinita, GKE non rispetta le impostazioni PodDisruptionBudget (PDB) durante l'eliminazione pool di nodi. Tuttavia, puoi aggiornare la configurazione delpool di nodil in modo che GKE rispetti i PDB durante l'eliminazionpool di nodiol, anche con un limite di un'ora. Il rispetto dei PDB offre ai workload l'opportunità di spostarsi su altri nodi del cluster. Per maggiori informazioni sulla configurazione di questa impostazione, consulta Aggiorna un pool di nodi in modo che rispetti i PDB durante lpool di nodi pool.

Se i pod hanno selettori di nodi specifici, potrebbero rimanere in una condizione non pianificabile se nessun altro nodo nel cluster soddisfa i criteri.

Quando un cluster viene eliminato, GKE non segue questa procedura di terminazione controllata dei nodi tramite il loro svuotamento. Se i carichi di lavoro in esecuzione su un cluster devono essere terminati in modo controllato, utilizza kubectl drain per pulirli prima di eliminare il cluster.

Per eliminare un pool di nodi, consulta la sezione Elimina un node pool. Non puoi eliminare i node pool gestiti da Autopilot.

Passaggi successivi