Questa pagina spiega come ottimizzare le risorse del cluster per garantire una capacità di pianificazione sufficiente per i pod configurando il numero massimo di pod per nodo nei cluster Standard su Google Kubernetes Engine (GKE). Questa pagina ti aiuta a capire in che modo la relazione tra pod, dimensioni dei blocchi CIDR e numero di nodi influisce sul modo in cui GKE pianifica i pod e alloca gli indirizzi IP all'interno del cluster. Sono inclusi anche i dettagli relativi alle limitazioni e ai valori predefiniti per il numero massimo di pod per nodo.
Questa pagina è utile per operatori, cloud architect, sviluppatori e ingegneri di rete che eseguono il provisioning e la configurazione delle risorse cloud, il deployment di app e servizi e la gestione del networking per i deployment cloud. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui si fa riferimento nei contenuti di Google Cloud, consulta la pagina Ruoli utente e attività comuni di GKE Enterprise.
Prima di leggere questa pagina, acquisisci familiarità con i cluster quando utilizzare GKE Standard anziché Autopilot e con il modello di networking Kubernetes.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo
gcloud components update
.
Limitazioni
- Puoi configurare il numero massimo di pod per nodo solo nei cluster VPC nativi.
- La creazione di nodi è limitata dal numero di indirizzi disponibili nell'intervallo di indirizzi dei pod. Consulta la tabella di pianificazione dell'intervallo di indirizzi IP per le dimensioni predefinite, minime e massime dell'intervallo di indirizzi pod. Puoi anche aggiungere altri indirizzi IP dei pod utilizzando il CIDR multi-pod non contiguo.
Ogni cluster deve creare pod kube-system, ad esempio kube-proxy, nello spazio dei nomi
kube-system
. Quando riduci il numero massimo di pod per nodo, ricorda di tenere conto sia dei pod del carico di lavoro sia dei pod di sistema. Per elencare i pod di sistema nel cluster, esegui questo comando:kubectl get pods --namespace kube-system
Configura il numero massimo di pod per nodo
Puoi configurare il numero massimo di pod per nodo in un cluster Standard quando crei un cluster o unpool di nodil. Non puoi modificare questa impostazione dopo aver creato il cluster opool di nodil. Per i cluster Autopilot, il numero massimo di nodi è preconfigurato e non può essere modificato.
Tuttavia, se esaurisci gli indirizzi IP dei pod, puoi creare intervalli di indirizzi IP dei pod aggiuntivi utilizzando il CIDR multi-pod non contiguo.
Puoi impostare le dimensioni dell'intervallo di indirizzi dei pod quando crei un cluster utilizzando gcloud CLI o la console Google Cloud .
gcloud
Per impostare il numero massimo predefinito di pod per nodo utilizzando gcloud CLI, esegui il seguente comando:
gcloud container clusters create CLUSTER_NAME \
--enable-ip-alias \
--cluster-ipv4-cidr=10.0.0.0/21 \
--services-ipv4-cidr=10.4.0.0/19 \
--create-subnetwork=name='SUBNET_NAME',range=10.5.32.0/27 \
--default-max-pods-per-node=MAXIMUM_PODS \
--location=COMPUTE_LOCATION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del nuovo cluster.SUBNET_NAME
: il nome della nuova subnet per il tuo cluster.MAXIMUM_PODS
: il numero massimo predefinito di pod per nodo per il cluster, può essere configurato fino a256
. Se omesso, Kubernetes assegna il valore predefinito110
.COMPUTE_LOCATION
: la posizione di Compute Engine per il nuovo cluster.
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Fai clic su add_box Crea.
Configura il nuovo cluster.
Nel riquadro di navigazione, in Cluster, fai clic su Networking.
Assicurati che la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias) sia selezionata.
Nel riquadro di navigazione, in Pool di nodi, fai clic su Nodi.
Imposta il campo Numero massimo di pod per nodo su
110
. GKE utilizza questo valore per regolare le dimensioni dell'intervallo di indirizzi IP assegnato ai nodi.Fai clic su Crea.
Quando configuri il numero massimo di pod per nodo per il cluster, Kubernetes utilizza questo valore per allocare un intervallo CIDR per i nodi. Puoi calcolare il numero massimo di nodi nel cluster in base all'intervallo di indirizzi IP secondari del cluster per i pod e all'intervallo CIDR allocato per il nodo.
Ad esempio, se imposti il numero massimo predefinito di pod su 110
e l'intervallo di indirizzi IP secondari per i pod su /21
, Kubernetes assegna un intervallo CIDR /24
ai nodi del cluster. Ciò consente un massimo di
2(24-21) = 23 = 8
nodi sul cluster.
Allo stesso modo, se imposti il numero massimo predefinito di pod su 8
e l'intervallo di indirizzi IP secondari per i pod del cluster su /21
, Kubernetes assegna un intervallo CIDR /28
ai nodi. Ciò consente un massimo di
2(28-21) = 27 = 128
nodi sul cluster.
Configura il numero massimo di pod in un nuovo pool di nodi per un cluster esistente
Puoi anche specificare il numero massimo di pod per nodo durante la creazione di un node pool in un cluster Standard esistente. La creazione di un nuovo pool di nodi consente di ottimizzare l'allocazione degli indirizzi IP, anche nei cluster esistenti in cui non è configurato un numero massimo predefinito di pod per nodo a livello di cluster.
L'impostazione del numero massimo di pod a livello di pool di nodi sostituisce il valore massimo predefinito a livello di cluster. Se non configuri un numero massimo di pod per nodo quando crei il pool di nodi, viene applicato il valore massimo a livello di cluster.
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--max-pods-per-node=MAXIMUM_PODS
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi.CLUSTER_NAME
: il nome del cluster in cui vuoi creare il pool di nodi.MAXIMUM_PODS
: il numero massimo di pod nel pool di nodi.
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic su add_box Aggiungi pool di nodi.
Nel riquadro di navigazione, fai clic su Nodi.
In Networking, inserisci un valore nel campo Numero massimo di pod per nodo. GKE utilizza questo valore per regolare le dimensioni dell'intervallo di indirizzi IP assegnato ai nodi.
Intervalli secondari dei pod e numero massimo di pod per nodo
Quando configuri il numero massimo di pod per nodo, influisci indirettamente sulle dimensioni richieste dell'intervallo secondario dei pod. GKE richiede un blocco CIDR minimo di /24 per pool di nodi. Se tenti di specificare un intervallo secondario del pod inferiore a /24 durante la creazione di un pool di nodi, viene visualizzato il seguente errore:
Pod secondary range 'Pod' must have a CIDR block of at least /24
Se hai bisogno di un intervallo più piccolo di /24 per il cluster complessivo, puoi specificarlo a livello di cluster utilizzando l'argomento --cluster-ipv4-cidr con Google Cloud CLI. Per ulteriori informazioni, vedi Creazione di un cluster con un intervallo CIDR specifico. Puoi anche utilizzare il CIDR multi-pod discontinuo per aggiungere altri intervalli di indirizzi IP del pod al cluster.
Ogni cluster deve creare pod kube-system, come kube-proxy, nello spazio dei nomi kube-system. Quando configuri il numero massimo di pod per nodo, ricorda di tenere conto sia dei pod del carico di lavoro sia dei pod di sistema.
Informazioni sul numero massimo predefinito di pod per nodo
Per impostazione predefinita, GKE consente fino a 110 pod per nodo nei cluster standard, ma questi possono essere configurati per consentire fino a 256 pod per nodo. I cluster Autopilot, in base alla densità dei pod del workload prevista, scelgono il numero massimo di pod per nodo da un intervallo compreso tra 8 e 256. Kubernetes assegna a ogni nodo un intervallo di indirizzi IP, un blocco CIDR, in modo che ogni pod possa avere un indirizzo IP univoco. Le dimensioni del blocco CIDR corrispondono al numero massimo di pod per nodo.
Intervalli CIDR dei pod nei cluster Standard
Con il massimo predefinito di 110 pod per nodo per i cluster Standard, Kubernetes assegna un blocco CIDR /24 (256 indirizzi) a ciascuno dei nodi. Avendo a disposizione più del doppio degli indirizzi IP rispetto al numero massimo di pod che possono essere creati su un nodo, Kubernetes può ridurre il riutilizzo degli indirizzi IP man mano che i pod vengono aggiunti e rimossi da un nodo.
Sebbene 256 pod per nodo sia un limite rigido, puoi ridurre il numero di pod su un nodo. Le dimensioni del blocco CIDR assegnato a un nodo dipendono dal valore massimo di pod per nodo. Il blocco contiene sempre almeno il doppio degli indirizzi rispetto al numero massimo di pod per nodo.
La tabella seguente elenca le dimensioni del blocco CIDR e il numero corrispondente di indirizzi IP disponibili che Kubernetes assegna ai nodi in base al numero massimo di pod per nodo:
Numero massimo di pod per nodo | Intervallo CIDR per nodo | Numero di indirizzi IP |
---|---|---|
8 | /28 | 16 |
9-16 | /27 | 32 |
17 – 32 | /26 | 64 |
33-64 | /25 | 128 |
65 - 128 | /24 | 256 |
129 - 256 | /23 | 512 |
Intervalli CIDR dei pod nei cluster Autopilot
Nei cluster GKE Autopilot, il numero massimo di pod per nodo e l'allocazione del blocco CIDR associato sono dinamici. Ciò significa che possono variare in base alla versione di GKE e alla densità del workload.
GKE Autopilot versioni 1.27 e precedenti: il numero massimo di pod per nodo è fisso a 32. Di conseguenza, a ogni nodo viene assegnato un blocco CIDR /26 (64 indirizzi IP).
GKE Autopilot versioni 1.28 e successive: il numero massimo di pod per nodo è dinamico e può variare da 8 a 256. Le dimensioni del blocco CIDR vengono modificate di conseguenza per garantire che ogni pod abbia un indirizzo IP univoco.
La natura dinamica del numero massimo di pod per nodo nei cluster Autopilot consente un utilizzo efficiente delle risorse. Il cluster si adatta automaticamente ai requisiti del carico di lavoro, allocando il numero appropriato di pod e indirizzi IP per nodo.
Per adattarsi alle dimensioni iniziali del cluster e alla configurazione del numero massimo di pod per nodo, seleziona un intervallo di indirizzi IP secondari appropriato per i pod. Ti consigliamo di pianificare con attenzione l'indirizzamento IP. Tuttavia, se esaurisci gli indirizzi IP man mano che il cluster viene scalato, impedisce un ulteriore scalabilità finché non vengono aggiunti altri indirizzi IP. Se necessario, puoi aggiungere altri intervalli secondari in un secondo momento. Per ulteriori informazioni su come aggiungere altri intervalli di indirizzi IP dopo aver creato il cluster, consulta Aggiunta di intervalli secondari a una rete VPC.
In genere è consigliabile un intervallo di /16 (ad esempio, cluster-ipv4-cidr=240.0.0.0/16) per offrire flessibilità per la crescita e le modifiche alla densità dei pod all'interno del cluster.
Quando pianifichi la configurazione di rete del cluster Autopilot, considera i seguenti punti:
- Densità dei pod: considera il numero massimo di pod nel cluster che i tuoi carichi di lavoro potrebbero richiedere.
- Intervallo CIDR: scegli un intervallo di indirizzi IP secondario per i pod che possa soddisfare i requisiti di dimensioni del cluster e densità dei pod.
- Flessibilità: un intervallo CIDR più ampio, come /16, offre maggiore flessibilità per la crescita futura e le modifiche alla densità dei pod.
Pianificando attentamente l'intervallo CIDR, puoi contribuire a garantire che il tuo cluster Autopilot possa inizialmente scalare per soddisfare le tue esigenze. Tuttavia, se riscontri limitazioni degli indirizzi IP man mano che il cluster cresce, puoi aggiungere intervalli secondari aggiuntivi per supportare un ulteriore scalabilità.
Riduci il numero massimo di pod
La riduzione del numero massimo di pod per nodo consente al cluster di avere più nodi, poiché ogni nodo richiede una parte più piccola dello spazio totale degli indirizzi IP. In alternativa, puoi supportare lo stesso numero di nodi nel cluster specificando uno spazio di indirizzi IP più piccolo per i pod al momento della creazione del cluster.
La riduzione del numero massimo di pod per nodo consente anche di creare cluster più piccoli che richiedono meno indirizzi IP. Ad esempio, con otto pod per nodo, a ogni nodo viene concesso un CIDR /28. Questi intervalli di indirizzi IP, insieme agli intervalli di subnet e secondari che definisci, determinano il numero di indirizzi IP necessari per creare un cluster.
Puoi configurare il numero massimo di pod per nodo al momento della creazione del cluster e del node pool.
Passaggi successivi
- Scopri come creare cluster nativi di VPC.
- Scopri come aggiungere indirizzi IP pod aggiuntivi ai cluster.
- Scopri di più sulle strategie di gestione degli indirizzi IP durante la migrazione a GKE.
- Scopri di più sugli insight sull'utilizzo degli indirizzi IP di GKE.