Informazioni sui node pool


Questa pagina spiega come funzionano i node pool in Google Kubernetes Engine (GKE). Un node pool è un gruppo di nodi all'interno di un cluster 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 carichi di lavoro. Se scegli di utilizzare Autopilot, non devi configurare i node pool: GKE gestisce i nodi per te.

Per scoprire di più sulla creazione di cluster in modalità Standard, consulta Creare un cluster regionale e Creare 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 generico. Puoi specificare una serie di proprietà per il pool di nodi, a seconda dei requisiti del carico di lavoro. Ad esempio, potresti creare unpool di nodil nel cluster con SSD locali, una piattaforma CPU minima, VM spot, un'immagine del nodo diversa, tipi di macchina 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 programmati i pod, puoi utilizzare le incompatibilità dei nodi.

Puoi creare, eseguire l'upgrade ed eliminare i node pool 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 delpool di nodil.

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 dei pool di nodi esistenti o l'upgrade automatico. Puoi anche eseguire più versioni dei nodi Kubernetes su ogni pool di nodi nel cluster, aggiornare ogni pool di nodi in modo indipendente e scegliere come target node pool diversi per deployment specifici.

Deployment di 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 nei cluster multi-zonali

Se hai creato un cluster multi-zonale, tutti i node pool vengono replicati automaticamente in queste zone. Qualsiasi nuovo pool di nodi viene creato automaticamente in queste zone. Allo stesso modo, qualsiasi eliminazione rimuove questi pool di nodi anche dalle zone aggiuntive.

Tieni presente che, a causa di questo effetto moltiplicativo, la quota del progetto per una regione specifica potrebbe essere consumata maggiormente durante la creazione di pool di nodi.

Eliminazione dei node pool

Quando elimini un node pool, GKE svuota tutti i nodi nel pool di nodi, eliminando e riprogrammandone tutti i pod. Il processo di svuotamento prevede l'eliminazione dei pod su ogni nodo delpool di nodil da parte di GKE. Ogni nodo in un pool di nodi viene svuotato eliminando i pod con un periodo di arresto controllato assegnato di MAX_POD. MAX_POD è il valore massimo di terminationGracePeriodSeconds impostato sui pod pianificati sul nodo, con un limite di un'ora. Le impostazioni PodDisruptionBudget non vengono rispettate durante l'eliminazione del pool di nodi.

Se i pod hanno selettori di nodi specifici, potrebbero rimanere in una condizione non pianificabile se nessun altro nodo del 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 workload 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 Eliminare un node pool.

Passaggi successivi