Pianificazione degli indirizzi IP per i cluster del servizio Azure Kubernetes

Questo articolo fornisce indicazioni sulla pianificazione degli indirizzi IP per i cluster del servizio Azure Kubernetes.

Per indicazioni specifiche sulla pianificazione degli indirizzi IP per le singole opzioni di CNI, vedere la sezione Passaggi successivi che include collegamenti alla documentazione del plug-in.

Dimensionamento della subnet

La subnet della rete virtuale di Azure deve essere sufficientemente grande per supportare il cluster, a seconda che si usi una rete overlay o una rete flat.

Reti overlay

Con le reti overlay, come Azure CNI Overlay, la subnet deve essere sufficientemente grande per assegnare indirizzi IP ai nodi. Ai pod vengono assegnati gli indirizzi IP di un intervallo CIDR privato separato e non gli indirizzi IP della rete virtuale. La subnet della rete virtuale usata per il cluster può essere più piccola di quella delle reti flat.

È importante assicurarsi di allocare nell'intervallo CIDR privato spazio sufficiente per i pod in modo da tenere conto del ridimensionamento. Quando si pianificano le dimensioni dell'intervallo di indirizzi IP, è necessario calcolare il numero massimo di pod. A ogni nodo del cluster viene assegnata una subnet /24 (256 indirizzi IP) per i pod. È consigliabile pianificare una subnet di rete overlay che possa contenere il numero massimo di nodi che si prevede di eseguire.

Reti flat

Le reti flat, come la subnet dei pod di Azure CNI, richiedono una subnet sufficientemente grande per contenere sia i nodi sia i pod. Poiché nodi e pod ricevono indirizzi IP dalla rete virtuale, è necessario pianificare tenendo conto del numero massimo di nodi e pod che si prevede di eseguire. La subnet dei pod di Azure CNI usa una subnet per i nodi e una subnet separata per i pod, quindi è necessario tenere conto di entrambe nella pianificazione.

Dimensionamento degli indirizzo IP

Considerazioni su aggiornamento e ridimensionamento

Quando si pianificano gli indirizzi IP per il cluster del servizio Azure Kubernetes, è necessario considerare il numero di indirizzi IP necessario per le operazioni di aggiornamento e ridimensionamento. Se si imposta l'intervallo di indirizzi IP in modo che supporti solo un numero fisso di nodi, non sarà possibile aggiornare o ridimensionare il cluster.

Quando si esegue l'aggiornamento del cluster del servizio Azure Kubernetes, viene distribuito un nuovo nodo nel cluster. Viene avviata l'esecuzione di servizi e carichi di lavoro nel nuovo nodo e il nodo precedente viene rimosso dal cluster. Questo processo di aggiornamento in sequenza richiede la disponibilità di almeno un altro blocco di indirizzi IP. Il numero di nodi è quindi n + 1 dove n indica il numero di nodi nel cluster.

Quando si esegue il ridimensionamento di un cluster del servizio Azure Kubernetes, viene distribuito un nuovo nodo nel cluster. Viene avviata l'esecuzione di servizi e carichi di lavoro nel nuovo nodo. Per calcolare l'intervallo di indirizzi IP, è necessario considerare il modo in cui si vuole aumentare il numero di nodi e pod supportati dal cluster. Deve essere incluso anche un minimo di un nodo aggiuntivo per le operazioni di aggiornamento o il numero di nodi impostati dall'opzione Personalizza aggiornamento dell'aumento del nodo. Il numero di nodi risulta quindi pari a n + number-of-additional-scaled-nodes-you-anticipate + max surge.

Se si usa la subnet dei pod di Azure CNI, si prevede che i nodi eseguano il numero massimo di pod e si eseguono regolarmente operazioni di eliminazione e distribuzione di pod, è inoltre necessario tenere conto di indirizzi IP aggiuntivi per ogni nodo. Quando si elimina un servizio e si rilascia il relativo indirizzo IP, è possibile che si verifichino alcuni secondi di latenza prima che un nuovo servizio venga distribuito e acquisisca tale indirizzo. Gli indirizzi IP aggiuntivi servono quando si verifica questo scenario.

Il piano di indirizzo IP per un cluster servizio Azure Kubernetes è costituito da una rete virtuale, almeno una subnet per i nodi e i pod e un intervallo di indirizzi per il servizio Kubernetes.

Risorsa di Azure Intervallo di indirizzi Limiti e dimensionamento
Rete virtuale di Azure Dimensioni massime /8. Limite di 65.536 indirizzi IP configurati. Per le eccezioni, vedere Allocazione statica dei blocchi nella subnet dei pod di Azure CNI Gli spazi di indirizzi sovrapposti all'interno della rete possono causare problemi.
Subnet Deve essere sufficientemente grande per contenere i nodi, i pod e tutte le risorse Kubernetes e Azure nel cluster. Ad esempio, se si distribuisce un Azure Load Balancer interno, dalla subnet del cluster vengono allocati gli indirizzi IP front-end, ma non gli indirizzi IP pubblici. Per calcolare le dimensioni della subnet, è opportuno tenere conto delle operazioni di aggiornamento e delle esigenze di ridimensionamento future.

Usare l'equazione seguente per calcolare le dimensioni minime della subnet, incluso un nodo aggiuntivo per le operazioni di aggiornamento: (number of nodes + max surge nodes) + ((number of nodes + max surge nodes) * maximum pods per node that you configure)

esempio per un cluster a 50 nodi: (51) + (51 * 30 (default)) = 1,581 (/21 o superiore) Esempio per un cluster a 50 nodi, preparazione per aumentare le prestazioni di 10 nodi con un picco massimo predefinito di 1 nodo: (61) + (61 * 30 (default)) = 1,891 (/21 o superiore)

Se non si specifica un numero massimo di pod per nodo quando si crea il cluster, Il numero massimo di pod per nodo è impostato su 30. Il numero minimo di indirizzi IP richiesti si basa su questo valore. Se si calcolano i requisiti di indirizzi IP minimi in base a un valore massimo diverso, vedere Numero massimo di pod per nodo per impostare questo valore quando si distribuisce il cluster.

Intervallo di indirizzi del servizio Kubernetes Questo intervallo non deve essere usato da nessun elemento della rete che si trova su questa rete virtuale o è connesso a essa. Il CIDR dell'indirizzo del servizio deve essere inferiore a /12. È possibile riutilizzare questo intervallo tra cluster del servizio Azure Kubernetes diversi.
Indirizzo IP del servizio DNS Kubernetes Indirizzo IP all'interno dell'intervallo di indirizzi del servizio Kubernetes usato dall'individuazione del servizio cluster. Non usare il primo indirizzo IP nell'intervallo di indirizzi. Il primo indirizzo nell'intervallo della subnet è usato per l'indirizzo kubernetes.default.svc.cluster.local.

Numero massimo di pod per nodo

Il numero massimo di pod per nodo in un cluster del servizio Azure Kubernetes è 250. Il numero massimo predefinito di pod per nodo varia tra le funzionalità di rete kubenet e Azure CNI e il metodo di distribuzione del cluster.

CNI Numero massimo di pod predefinito Configurabile in fase di distribuzione
Sovrimpressione di Azure CNI 250 Sì (fino a 250)
Subnet pod di Azure CNI 110 Sì (fino a 250)
Azure CNI (legacy) 30 Sì (fino a 250)
Kubenet 110 Sì (fino a 250)

Configurazione del numero massimo di pod per nodo per i cluster

È possibile configurare il numero massimo di pod per nodo in fase di distribuzione del cluster o quando si aggiungono nuovi pool di nodi. È possibile impostare un valore massimo di 250 pod per nodo.

Viene applicato un valore minimo per il numero massimo di pod per nodo per garantire spazio per i pod di sistema critici per l'integrità del cluster. Il valore minimo che può essere impostato per il numero massimo di pod per nodo è 10 se e solo se la configurazione di ogni pool di nodi dispone di spazio per un minimo di 30 pod. Ad esempio, l'impostazione del numero massimo di pod per nodo su un minimo di 10 richiede che ogni singolo pool di nodi abbia almeno tre nodi. Questo requisito si applica anche per ogni nuovo pool di nodi creato, quindi se 10 è definito come numero massimo di pod per nodo, ogni pool di nodi successivo aggiunto deve avere almeno tre nodi.

Rete Minimo Massimo
Azure CNI 10 250
Kubenet 10 250

Nota

Il valore minimo nella tabella precedente viene applicato rigorosamente dal servizio Azure Kubernetes. Per maxPods non è possibile impostare un valore inferiore al valore minimo indicato, perché può impedire l'avvio del cluster.

Nuovi cluster

Quando si crea un nuovo cluster, è possibile definire il numero massimo di pod per nodo usando uno dei metodi seguenti:

  • Interfaccia della riga di comando di Azure: specificare l'argomento --max-pods quando si distribuisce un cluster con il comando az aks create.
  • Modello di Azure Resource Manager: specificare la proprietà maxPods nell'oggetto [ManagedClusterAgentPoolProfile] quando si distribuisce un cluster con un modello di Azure Resource Manager.
  • Portale di Azure: modificare il campo Max pods per node nelle impostazioni del pool di nodi durante la creazione di un cluster o l'aggiunta di un nuovo pool di nodi.

Cluster esistenti

Quando si crea un nuovo pool di nodi, è possibile definire il numero massimo di pod per nodo. Se è necessario aumentare l'impostazione maxPods in un cluster esistente, aggiungere un nuovo pool di nodi con il nuovo valore di maxPods desiderato. Dopo la migrazione dei pod nel nuovo pool, eliminare il pool di nodi precedente.

Passaggi successivi