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 la dimensione degli intervalli di indirizzi IP assegnati ai nodi su Google Kubernetes Engine (GKE). Ai pod in esecuzione su un nodo vengono allocati indirizzi IP dall'intervallo CIDR assegnato al nodo.

Durante la pianificazione, GKE utilizza il numero massimo di pod per nodo per determinare se 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 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 attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e initialize gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Limitazioni

  • Puoi configurare il numero massimo di pod per nodo solo nei cluster nativi di VPC.
  • La creazione dei nodi è limitata dal numero di indirizzi disponibili nell'intervallo di indirizzi dei pod. Controlla la tabella di pianificazione dell'intervallo di indirizzi IP per conoscere le dimensioni predefinite, minime e massime degli intervalli di indirizzi dei pod. Puoi anche aggiungere altri indirizzi IP dei pod utilizzando un CIDR multi-pod discreto.
  • Ogni cluster deve creare pod kube-system, ad esempio kube-proxy, nello spazio dei nomi kube-system. Ricorda di tenere conto sia dei pod del carico di lavoro sia dei pod di sistema quando riduci il numero massimo di pod per nodo. 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 durante la creazione di un cluster o di un pool di nodi. Non puoi modificare questa impostazione dopo la creazione del cluster o del pool di nodi.

Tuttavia, se esaurisci gli indirizzi IP dei pod, puoi creare intervalli di indirizzi IP aggiuntivi dei pod utilizzando il CIDR multi-pod discontinuo.

Puoi impostare la dimensione dell'intervallo di indirizzi dei pod durante la creazione di 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 questo 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 cluster.
  • MAXIMUM_PODS: il numero massimo predefinito di pod per nodo per il cluster (può essere configurato fino a 256). Se omesso, Kubernetes assegna il valore predefinito 110.
  • COMPUTE_LOCATION: la località di 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 usa questo valore per ottimizzare 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 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 sul 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 del cluster per i pod 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 quando crei un pool di nodi in un cluster 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 predefinito massimo a livello di cluster. Se non configuri un numero massimo di pod per nodo quando crei il pool di nodi, viene applicato il numero 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 usa questo valore per regolare la dimensione dell'intervallo di indirizzi IP assegnato ai nodi.

Informazioni sul numero massimo predefinito di pod per nodo

Per impostazione predefinita, GKE consente fino a 110 pod per nodo sui cluster standard. Tuttavia, i cluster standard possono essere configurati in modo da consentire fino a 256 pod per nodo. I cluster Autopilot, in base alla densità dei pod prevista per il carico di lavoro, scelgono il numero massimo di pod per nodo in un intervallo compreso tra 8 e 256. Kubernetes assegna a ciascun 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 pod nei cluster standard

Con un 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 avere 256 pod per nodo è un limite fisso, puoi ridurre il numero di pod su un nodo. La dimensione del blocco CIDR assegnato a un nodo dipende dal valore del numero massimo di pod per nodo. Il blocco contiene sempre almeno il doppio degli indirizzi rispetto al numero massimo di pod per nodo.

La seguente tabella 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
09-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

Le impostazioni predefinite per le dimensioni CIDR del cluster Autopilot sono le seguenti:

  • Intervallo subnet: /23
  • Intervallo di indirizzi IP secondari per i pod: /17
  • Intervallo di indirizzi IP secondari per i servizi: /22

Autopilot ha un numero massimo di 32 pod per nodo. Come con GKE Standard, viene eseguito il provisioning di un intervallo /26 per nodo, ovvero 64 IP. Un intervallo di indirizzi dei pod di /17 genera un cluster in grado di supportare al massimo 511 nodi (32.766 IP utilizzabili / 64 indirizzi IP per nodo).

Assicurati che l'intervallo di indirizzi IP secondari per i pod specificati sia abbastanza grande da supportare la dimensione massima prevista del cluster. Si consiglia un intervallo di /16 (ad esempio cluster-ipv4-cidr=10.0.0.0/16) per supportare la crescita massima del cluster.

Riduci il numero massimo di pod

La riduzione del numero massimo di pod per nodo consente al cluster di avere più nodi, poiché ognuno richiede una parte più piccola dello spazio di indirizzi IP totale. In alternativa, potresti 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 ti 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, oltre agli intervalli di subnet e secondari che definisci, determinano il numero di indirizzi IP necessari per creare correttamente un cluster.

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

Passaggi successivi