Questa pagina spiega come funzionano i pool di nodi in Google Kubernetes Engine (GKE).
Per scoprire come gestire i pool di nodi, consulta Aggiunta e gestione dei pool di nodi.
Panoramica
Un pool di nodi è un gruppo di nodi all'interno di un cluster che hanno tutti
la stessa configurazione. I pool di nodi utilizzano una specifica NodeConfig. Ogni nodo
nel pool ha un'etichetta del nodo Kubernetes, cloud.google.com/gke-nodepool
,
ha il nome del pool di nodi come valore.
Quando crei un cluster, il numero di nodi e il tipo di nodi che vengono utilizzate per creare il primo pool di nodi del cluster. Poi potrai aggiungere ulteriori pool di nodi di dimensioni e tipi diversi al cluster. Tutti i nodi in un determinato pool di nodi sono identici tra loro.
Ad esempio, potresti creare un pool di nodi nel tuo cluster SSD locali, una piattaforma CPU minima, VM spot, un'istanza specifica un'immagine nodo, diversi tipi di macchine o un sistema interfaccia di rete virtuale.
I pool di nodi personalizzati sono utili quando devi pianificare pod che richiedono più risorse di altre, ad esempio più memoria o più spazio su disco locale. Se hai bisogno di un maggiore controllo delle zone 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 nodo in un pool di nodi; eventuali modifiche alla configurazione interessano tutti i nodi nel nodo piscina.
Puoi ridimensionare i pool di nodi 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 automatico dei pool di nodi esistenti. Tu puoi anche eseguire più versioni dei nodi Kubernetes su ciascun pool di nodi aggiornare ogni pool di nodi in modo indipendente e scegliere come target pool di nodi 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 dalla configurazione il pod.
Puoi eseguire esplicitamente il deployment di un pod in un pool di nodi specifico impostando un
nodeSelector
nel manifest del pod. In questo modo viene forzata l'esecuzione di un pod solo sui nodi in quel pool di nodi. Per un esempio, consulta Deployment di un pod in un pool di nodi specifico.Puoi specifica le richieste di risorse per i container. Il pod viene eseguito solo su nodi che soddisfano le richieste di risorse. Ad esempio: Se la definizione del pod include un container che richiede quattro CPU, non seleziona i pod in esecuzione su nodi con due CPU.
Nodi in cluster multi-zona o a livello di regione
Se hai creato una campagna multi-zona o cluster regionale, dei pool di nodi vengono replicati automaticamente in quelle zone. Qualsiasi nuovo pool di nodi viene creato automaticamente in quelle zone. Analogamente, qualsiasi eliminazione li eliminerà pool di nodi anche dalle zone aggiuntive.
Tieni presente che, a causa di questo effetto moltiplicativo, potresti consumare una quantità maggiore di la quota del progetto per una regione specifica durante la creazione pool di nodi.
Eliminazione dei pool di nodi
Quando elimini un nodo
piscina,
GKE svuota tutti i nodi nel pool di nodi, eliminando
ripianificare tutti i pod. Il processo di svuotamento comporta l'eliminazione di GKE
su ciascun nodo nel pool di nodi. Ogni nodo in un pool di nodi viene svuotato
eliminazione dei pod con un periodo di arresto controllato allocato di MAX_POD
.
MAX_POD
è il numero massimo
terminationGracePeriodSeconds
sui pod pianificati sul nodo, con un limite di un'ora.
PodDisruptionBudget
le impostazioni non vengono rispettate durante l'eliminazione del pool di nodi.
Se i pod hanno selettori di nodi specifici, potrebbero rimanere in condizione non pianificabile se nessun altro nodo nel cluster soddisfa i criteri.
Quando un cluster viene eliminato, GKE non segue questo processo
terminando normalmente i nodi eseguendone lo svuotamento. Se i carichi di lavoro in esecuzione su un
il cluster deve essere terminato correttamente, utilizza kubectl
drain
per ripulire i carichi di lavoro prima di eliminare il cluster.
Per eliminare un pool di nodi, consulta Eliminare un nodo pool.
Passaggi successivi
- Scopri di più sull'architettura dei cluster in GKE.
- Scopri come aggiungere e gestire i pool di nodi.
- Scopri come eseguire il provisioning automatico dei nodi.