Insight sull'utilizzo degli indirizzi IP di GKE

Questa pagina descrive gli approfondimenti di Network Analyzer per l'utilizzo degli indirizzi IP di Google Kubernetes Engine (GKE). Per informazioni su tutti i tipi di insight, consulta Gruppi e tipi di insight.

Visualizzare gli approfondimenti nell'API Recommender

Per visualizzare questi approfondimenti nell'interfaccia alla gcloud CLI o nell'API Recommender, utilizza il seguente tipo di approfondimento:

  • google.networkanalyzer.container.ipAddressInsight

Devi disporre delle seguenti autorizzazioni:

  • recommender.networkAnalyzerGkeIpAddressInsights.list
  • recommender.networkAnalyzerGkeIpAddressInsights.get

Per ulteriori informazioni sull'utilizzo dell'API Recommender per gli approfondimenti di Network Analyzer, consulta Utilizzare l'API e l'interfaccia a riga di comando Recommender.

Elevata allocazione di intervalli di pod GKE

Questo insight indica che l'utilizzo degli indirizzi IP negli intervalli di indirizzi dei pod per un cluster GKE è superiore all'80%. Il criterio di allocazione degli indirizzi IP per i pod GKE varia a seconda che il cluster sia stato creato come cluster nativo di VPC o cluster basato su route.

Cluster basati su route

In GKE, i cluster possono essere distinti in base al modo in cui indirizzano il traffico da un pod all'altro. Un cluster che utilizza route di Google Cloud è chiamato cluster basato su route. Per ulteriori informazioni, consulta la sezione Creare un cluster basato su route.

Un cluster basato su route ha un intervallo di indirizzi IP utilizzati per i pod e i servizi. Anche se l'intervallo viene utilizzato sia per i pod sia per i servizi, si chiama Intervallo di indirizzi del pod.

L'ultimo /20 dell'intervallo di indirizzi del pod viene utilizzato per i servizi. Un intervallo /20 ha 212 = 4096 indirizzi. Pertanto, gli indirizzi 4096 vengono utilizzati per i servizi e il resto dell'intervallo viene utilizzato per i pod.

Ogni nodo dell'intervallo di indirizzi del pod ha un intervallo di /24 indirizzi IP per i pod. Un intervallo /24 ha 28 = 256 indirizzi. Ricorda che gli indirizzi 4096 nell'intervallo di indirizzi del pod vengono utilizzati per i servizi. La parte rimanente dell'intervallo di indirizzi dei pod viene utilizzata per i pod e deve essere sufficientemente grande da contenere il numero di nodi x 256 indirizzi.

Il rapporto di allocazione per l'intervallo di indirizzi del pod viene calcolato come segue:

$\frac{\text {Numero di nodi GKE} \times {256}}{\text {Dimensione dell'intervallo di indirizzi del pod}-{4096}}$

Ad esempio, prevedi di creare un cluster di 900 nodi. Poi devi avere gli indirizzi 900 x 256 = 230,400 per i pod. Supponiamo ora di avere un intervallo di indirizzi di pod /14. Un intervallo /14 ha 218 = 262,144 indirizzi. Sottrai gli indirizzi 4096 utilizzati per i servizi e ottieni258,048, che è sufficiente per 900 nodi.

Cluster VPC nativi

In GKE, i cluster possono essere distinti in base al modo in cui indirizzano il traffico da un pod a un altro. Un cluster che utilizza intervalli di indirizzi IP alias è chiamato cluster nativo VPC. Per ulteriori informazioni, consulta Cluster nativi di VPC.

Quando crei un pool di nodi in un cluster nativo di VPC, selezioni un intervallo di indirizzi IP secondario per allocare gli IP per i pod GKE. Pool di nodi diversi possono utilizzare intervalli secondari diversi per allocare gli indirizzi IP dei pod. Per ulteriori informazioni, consulta CIDR multi-pod. Network Analyzer calcola il rapporto di allocazione per ogni intervallo di indirizzi IP secondari utilizzato per allocare gli indirizzi IP dei pod per un determinato cluster. Se il rapporto di allocazione complessivo è superiore all'80%, ottieni un'informazione sull'utilizzo elevato.

Il rapporto di allocazione per un singolo intervallo di indirizzi IP secondario viene calcolato come segue:

$\frac{\text {Indirizzi IP dell'intervallo secondario allocati ai nodi}}{\text {Dimensioni dell'intervallo secondario}}$

Ad esempio, un intervallo di pod secondario /24 può contenere 256 pod. Se è presente un solo 1 nodo con pod max_pods_per_node, 110 e 16 predefiniti in esecuzione, il rapporto mostra il 100% (256/256) anziché il 6, 25% (16/256) perché anche se gli indirizzi IP dei pod 240 non vengono utilizzati, appartengono comunque a questo nodo. Un altro nuovo nodo può essere creato correttamente solo se sono presenti 256 indirizzi IP del pod inutilizzati.

L'allocazione complessiva viene calcolata nel seguente modo:

$\frac{\text {Somma degli IP allocati in tutti gli intervalli di indirizzi IP secondari utilizzati per allocare gli indirizzi IP del pod}}{\text {Somma delle dimensioni degli intervalli di indirizzi IP secondari utilizzati per allocare gli indirizzi IP del pod}}$

Ad esempio, se l'indirizzo IP del pod predefinito e l'intervallo di indirizzi IPv4 del pod aggiuntivo sono impostati su /22 e sono presenti 2 pool di nodi, un pool di nodi utilizza l'intervallo di indirizzi IP del pod predefinito e ha 3 nodi, mentre il secondo pool di nodi utilizza un intervallo di indirizzi IP del pod aggiuntivo e ha anche 3 nodi, con il numero massimo predefinito di pod impostato su 110. Kubernetes assegna un intervallo CIDR /24 ai nodi del cluster. Con 6 nodi e un intervallo CIDR /24 allocato, sono disponibili in totale 256 * 6 = 1536 indirizzi IP. Si tratta del 75% del numero totale di indirizzi IP disponibili nei due intervalli di indirizzi IP del pod (1024 * 2 = 2048).

È importante notare che se l'indirizzo IP secondario è condiviso tra diversi cluster, gli approfondimenti mostrano il valore totale aggregato di tutti i cluster. Per visualizzare l'utilizzo di un singolo intervallo IP del cluster, puoi eseguire gcloud container cluster describe CLUSTER_NAME per visualizzare lo stato di utilizzo di ogni indirizzo IP secondario. Sostituisci CLUSTER_NAME con il nome del cluster.

Consigli

L'allocazione degli intervalli di pod GKE limita la scalabilità automatica

Questo insight indica che gli intervalli di indirizzi IP dei pod del cluster non dispongono di indirizzi sufficienti per supportare la creazione del numero massimo di nodi in tutti i pool di nodi. La pagina dei dettagli dell'approfondimento include una tabella che mostra il numero di indirizzi IP dei pod attualmente utilizzati e il numero massimo di indirizzi IP dei pod in ciascuno degli intervalli di indirizzi IP dei pod del tuo cluster GKE.

Network Analyzer genera questo insight quando il valore di utilizzo degli indirizzi IP completamente scalato automaticamente supera il 100%.

Il valore di utilizzo degli indirizzi IP completamente scalabili supera il 100% quando il numero di indirizzi IP dei pod necessari per supportare il numero massimo di nodi nel cluster supera il numero di indirizzi IP negli intervalli di indirizzi IP dei pod del cluster. Il numero massimo di nodi nel cluster è la somma del numero massimo di nodi in ogni pool di nodi del cluster (maxNodeCount).

Il valore di utilizzo degli indirizzi IP completamente scalabili viene calcolato utilizzando la formula riportata in Allocazione di intervalli di pod GKE elevati.

Cluster basati su route

Questo insight viene generato quando il rapporto di allocazione per l'intervallo di indirizzi del pod è superiore al 100% e tutti i pool di nodi sono completamente scalabili automaticamente. I nodi GKE non verranno creati a causa della mancanza di spazio degli indirizzi IP.

Cluster VPC nativi

Questo insight viene generato se un intervallo di indirizzi IP secondario utilizzato per allocare gli indirizzi IP dei pod non dispone di uno spazio di indirizzi IP non allocato sufficiente. Lo spazio indirizzi IP insufficiente non può gestire la situazione in cui tutti i pool di nodi sono completamente scalabili automaticamente.

Per saperne di più, consulta Best practice per il networking di GKE e Limitazione del gestore della scalabilità automatica del cluster.

Consigli

  • Per i cluster basati su route, ricrea il cluster con un intervallo di indirizzi dei pod più ampio. Crea questo cluster come cluster nativo di VPC perché è la modalità di rete consigliata. Consulta Cluster nativi di VPC e basati su route.
  • Per i cluster nativi VPC, aggiungi altri intervalli di pod a livello di cluster utilizzando il CIDR multi-pod e abilita il provisioning automatico dei nodi per automatizzare la scalabilità dei nodi con l'allocazione automatica degli indirizzi IP dei pod. Se vuoi un maggiore controllo sugli indirizzi IP dei pod utilizzati per ciascun pool di nodi, puoi creare i pool di nodi che utilizzano un intervallo di indirizzi IP secondari specifico utilizzando il CIDR multi-pod. Tuttavia, questo vale solo per i cluster standard.