Configura il numero massimo di pod per nodo


Questa pagina spiega come configurare il numero massimo di pod che possono essere eseguiti su un nodo per i cluster standard. Questo valore determina le dimensioni degli intervalli di indirizzi IP assegnati ai nodi su Google Kubernetes Engine (GKE). Ai pod in esecuzione su un nodo vengono assegnati indirizzi IP dall'intervallo CIDR assegnato al nodo.

Durante la pianificazione, GKE utilizza il numero massimo di pod per nodo per determinare se è presente la capacità sufficiente per pianificare un pod. Solo i pod che sono stati assegnati a un nodo e non sono ancora stati terminati (fase Failed o Succeeded) vengono conteggiati ai fini di questa capacità.

I passaggi descritti in questa pagina non si applicano ai cluster Autopilot perché il numero massimo di nodi è preconfigurato e immutabile.

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à, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente 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 del pod. Consulta la tabella di pianificazione degli intervalli di indirizzi IP per le dimensioni predefinite, minime e massime degli intervalli di indirizzi pod. Puoi anche aggiungere altri indirizzi IP dei pod utilizzando il CIDR multi-pod disgiunto.
  • Ogni cluster deve creare pod kube-system, come kube-proxy, nello spazio dei nomi kube-system. Quando riduci il numero massimo di pod per nodo, tieni conto sia dei pod di lavoro sia dei pod di sistema. Per elencare i pod di sistema nel cluster, esegui il seguente comando:

    kubectl get pods --namespace kube-system
    

Configura il numero massimo di pod per nodo

Puoi configurare il numero massimo di pod per nodo durante la creazione di un cluster o di un pool di nodi. Non puoi modificare questa impostazione dopo aver creato il cluster o il pool di nodi.

Tuttavia, se non hai più indirizzi IP dei pod, puoi creare altri intervalli di indirizzi IP dei pod utilizzando il CIDR multi-pod non contiguo.

Puoi impostare la dimensione dell'intervallo di indirizzi del pod quando crei un cluster utilizzando la gcloud CLI o la console Google Cloud.

gcloud

Per impostare il numero massimo di pod per nodo predefinito 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, che può essere configurato fino a 256. Se omesso, Kubernetes assegna il valore predefinito 110.
  • COMPUTE_LOCATION: la posizione Compute Engine per il nuovo cluster.

Console

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

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura il nuovo cluster.

  4. Nel riquadro di navigazione, in Cluster, fai clic su Networking.

  5. Assicurati che la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias) sia selezionata.

  6. Nel riquadro di navigazione, in Pool di nodi, fai clic su Nodi.

  7. 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.

  8. 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 secondario 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 di /24 ai nodi del cluster. Ciò consente un massimo di 2(24-21) = 23 = 8 nodi nel cluster.

Analogamente, se imposti il numero massimo di pod predefinito su 8 e l'intervallo di indirizzi IP secondario del cluster per i pod su /21, Kubernetes assegna ai nodi un intervallo CIDR di /28. Ciò consente un massimo di 2(28-21) = 27 = 128 nodi nel cluster.

Configurare 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 esistente. La creazione di un nuovo pool di nodi ti 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

  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 da modificare.

  3. Fai clic su Aggiungi pool di nodi.

  4. Nel riquadro di navigazione, fai clic su Nodi.

  5. 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.

Informazioni sul numero massimo di pod per nodo predefinito

Per impostazione predefinita, GKE consente fino a 110 pod per nodo nei cluster standard, ma i cluster standard 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 numero massimo predefinito di 110 pod per nodo per i cluster standard, Kubernetes assegna un blocco CIDR /24 (256 indirizzi) a ciascuno dei nodi. Avendo più del doppio degli indirizzi IP disponibili 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.

Anche se 256 pod per nodo è un limite rigido, puoi ridurre il numero di pod su un nodo. Le dimensioni del blocco CIDR assegnato a un nodo dipendono dal valore Pods massimi 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 associata sono dinamici. Ciò significa che possono variare in base alla versione di GKE e alla densità del carico di lavoro.

  • GKE Autopilot versioni 1.28 e precedenti: il numero massimo di pod per nodo è fissato 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 aggiustate 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 soddisfare le dimensioni iniziali del cluster e il numero massimo di pod per nodo configurazione, seleziona un intervallo di indirizzi IP secondario appropriato per i pod. Ti consigliamo di pianificare con attenzione l'indirizzamento IP. Tuttavia, se esaurisci gli indirizzi IP man mano che il cluster si espande, ne viene impedito un ulteriore ridimensionamento 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.

Prendi in considerazione i seguenti punti quando pianifichi la configurazione della rete del cluster Autopilot:

  • 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 sia i requisiti relativi alle dimensioni del cluster sia quelli relativi alla densità dei pod.
  • Flessibilità: un intervallo CIDR più ampio come /16 offre maggiore flessibilità per la crescita futura e le variazioni della densità dei pod.

Se pianifichi attentamente l'intervallo CIDR, puoi contribuire ad assicurare che il tuo cluster Autopilot possa scalare inizialmente per soddisfare le tue esigenze. Tuttavia, se si verificano limitazioni degli indirizzi IP man mano che il cluster cresce, puoi aggiungere intervalli secondari aggiuntivi per supportare un ulteriore ridimensionamento.

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 degli indirizzi IP totale. 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 inoltre di creare cluster più piccoli che richiedono meno indirizzi IP. Ad esempio, con otto pod per nodo, a ogni nodo viene assegnato un CIDR /28. Questi intervalli di indirizzi IP, oltre agli intervalli di subnet e secondari che definisci, determinano il numero di indirizzi IP necessari per creare un cluster correttamente.

Puoi configurare il numero massimo di pod per nodo al momento della creazione del cluster e al momento della creazione del node pool.

Passaggi successivi