Panoramica della rete CNI del servizio Azure Kubernetes

Kubernetes usa plug-in CNI (Container Networking Interface) per gestire la rete nei cluster Kubernetes. Le CNI sono responsabili dell'assegnazione di indirizzi IP ai pod, del routing di rete tra i pod, del routing del servizio Kubernetes e altro ancora.

AKS fornisce numerosi plug-in CNI che è possibile usare nei cluster a seconda dei requisiti di rete.

Modelli di rete nel servizio Azure Kubernetes

La scelta di un plug-in CNI per il cluster del servizio Azure Kubernetes dipende in gran parte dal modello di rete più adatto alle proprie esigenze. Ogni modello presenta vantaggi e svantaggi specifici da considerare per la pianificazione del cluster del servizio Azure Kubernetes.

Il servizio Azure Kubernetes usa due modelli di rete principali: rete di sovrimpressione e rete flat.

Entrambi i modelli di rete dispongono di più opzioni di plug-in CNI supportate. Le differenze principali tra i modelli riguardano le modalità di assegnazione degli indirizzi IP dei pod e il modo in cui il traffico esce dal cluster.

Reti di sovrimpressione

La rete di sovrimpressione è il modello di rete più comune usato in Kubernetes. Nelle reti di sovrimpressione viene assegnato ai pod un indirizzo IP da un CIDR privato, logicamente separato dalla subnet della rete virtuale di Azure in cui vengono distribuiti i nodi del servizio Azure Kubernetes. Ciò consente una scalabilità più semplice e spesso migliore rispetto al modello di rete flat.

Nelle reti di sovrimpressione, i pod possono comunicare tra loro direttamente. Il traffico in uscita dal cluster viene convertito dall'indirizzo di rete di origine (SNAT) nell'indirizzo IP del nodo, mentre e traffico IP del pod in ingresso viene instradato tramite un servizio, ad esempio un servizio di bilanciamento del carico. Ciò significa che l'indirizzo IP del pod è "nascosto" dietro l'indirizzo IP del nodo. Questo approccio riduce il numero di indirizzi IP della rete virtuale necessari per i cluster.

Diagramma che mostra due nodi con tre pod in esecuzione in una rete di sovrimpressione. Il traffico del pod verso endpoint esterni al cluster viene instradato tramite NAT.

Il servizio Azure Kubernetes fornisce i plug-in CNI seguenti per la rete di sovrimpressione:

Reti flat

A differenza di una rete di sovrimpressione, un modello di rete flat nel servizio Azure Kubernetes assegna gli indirizzi IP ai pod da una subnet della stessa rete virtuale di Azure dei nodi del servizio Azure Kubernetes. Ciò significa che il traffico in uscita dai cluster non viene sottoposto a SNAT e l'indirizzo IP del pod è direttamente esposto alla destinazione. Questo può essere utile per alcuni scenari, ad esempio quando è necessario esporre gli indirizzi IP del pod a servizi esterni.

Diagramma che mostra due nodi con tre pod in esecuzione in un modello di rete flat.

Il servizio Azure Kubernetes offre due plug-in CNI per la rete flat. Questo articolo non illustra in dettaglio ogni opzione di plug-in. Per altre informazioni, vedere la documentazione collegata:

Scelta di una CNI

Quando si sceglie una CNI, è necessario prendere in considerazione diversi fattori. Ogni modello di rete presenta vantaggi e svantaggi specifici e la scelta migliore per il cluster dipenderà dai requisiti specifici.

Scelta di un modello di rete

I due modelli di rete principali nel servizio Azure Kubernetes sono le reti di sovrimpressione e flat.

  • Reti di sovrimpressione:

    • Preservare lo spazio indirizzi IP della rete virtuale usando intervalli CIDR logicamente separati per i pod.
    • Supporto massimo per la scalabilità dei cluster.
    • Gestione indirizzi IP semplice.
  • Reti flat:

    • I pod ottengono la connettività di rete virtuale completa e possono essere raggiunti direttamente tramite l'indirizzo IP privato dalle reti connesse.
    • Richiedere uno spazio indirizzi IP della rete virtuale di grandi dimensioni e non frammentato.

Confronto tra casi d'uso

Quando si sceglie un modello di rete, considerare i casi d'uso per ogni plug-in CNI e il tipo di modello di rete usato:

Plug-in CNI Modello di rete Caso d'uso in evidenza
Sovrimpressione di Azure CNI Overlay - Ideale per la conservazione del protocollo IP della rete virtuale
- Numero massimo di nodi supportato dal server API + 250 pod per nodo
- Configurazione più semplice
- Nessun accesso diretto al protocollo IP del pod esterno
Subnet del pod di Azure CNI Flat - Accesso diretto al pod esterno
- Modalità per un utilizzo efficiente degli indirizzi IP della rete virtuale o per il supporto su larga scala del cluster (anteprima)
Kubenet (legacy) Overlay - Assegna priorità alla conservazione del protocollo IP
- Scalabilità limitata
- Gestione manuale della route
Subnet del nodo di Azure CNI (legacy) Flat - Accesso diretto al pod esterno
- Configurazione più semplice
- Scalabilità limitata
- Uso inefficiente dei protocolli P della rete virtuale

Confronto delle funzionalità

È inoltre possibile confrontare le funzionalità di ogni plug-in CNI. La tabella seguente fornisce un confronto delle funzionalità supportate da ogni plug-in CNI di alto livello:

Funzionalità Sovrimpressione di Azure CNI Subnet del pod di Azure CNI Subnet del nodo di Azure CNI (legacy) Kubenet
Distribuire un cluster in una rete virtuale esistente o nuova Supportata Supportato Supportata Supportato: route definite dall'utente manuali
Connettività pod-macchina virtuale con macchina virtuale nella stessa rete virtuale o in una rete con peering Pod avviato Entrambe le modalità Entrambe le modalità Pod avviato
Accesso locale tramite rete privata virtuale/ExpressRoute Pod avviato Entrambe le modalità Entrambe le modalità Pod avviato
Accesso agli endpoint del servizio Supportata Supportato Supportato Supportata
Esporre i servizi tramite il bilanciamento del carico Supportata Supportato Supportato Supportata
Esporre i servizi tramite il gateway applicazione Attualmente non supportati Supportata Supportato Supportata
Esporre i servizi tramite il controller in ingresso Supportata Supportato Supportato Supportata
Pool di nodi Windows Supportata Supportato Supportato Non supportato
DNS di Azure e zone private predefinite Supportata Supportato Supportato Supportata
Condivisione di subnet della rete virtuale tra più cluster Supportata Supportato Supportato Non supportato

Supporto dell'ambito tra i modelli di rete

A seconda della CNI usata, le risorse della rete virtuale del cluster possono essere distribuite secondo una delle modalità seguenti:

  • La piattaforma Azure può creare e configurare automaticamente le risorse di rete virtuale quando si crea un cluster del servizio Azure Kubernetes. ad esempio nella sovrimpressione di Azure CNI, nella subnet del nodo di Azure CNI e in Kubenet.
  • È possibile creare e configurare manualmente le risorse della rete virtuale e collegarsi a tali risorse quando si crea il cluster del servizio Azure Kubernetes.

Sebbene funzionalità come gli endpoint di servizio o le route definite dall'utente siano supportate, i criteri di supporto per il servizio Azure Kubernetes definiscono le modifiche che è possibile apportare. Ad esempio:

  • Se si creano manualmente le risorse di rete virtuale per un cluster del servizio Azure Kubernetes, è possibile configurare le route definite dall'utente o gli endpoint di servizio personalizzati.
  • Se la piattaforma Azure crea automaticamente le risorse di rete virtuale per il cluster del servizio Azure Kubernetes, non è possibile modificare manualmente tali risorse gestite dal servizio Azure Kubernetes per configurare le route definite dall'utente o gli endpoint di servizio.

Prerequisiti

Durante la pianificazione della configurazione di rete per il servizio Azure Kubernetes, è consigliabile prendere in considerazione diversi requisiti e considerazioni:

  • La rete virtuale per il cluster servizio Azure Kubernetes deve consentire la connettività Internet in uscita.
  • I cluster del servizio Azure Kubernetes non possono usare 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 o 192.0.2.0/24 per l'intervallo di indirizzi del servizio Kubernetes, per l'intervallo di indirizzi del pod o per l'intervallo di indirizzi della rete virtuale del cluster.
  • Negli scenari di rete virtuale BYO, l'identità del cluster usata dal cluster del servizio Azure Kubernetes deve avere almeno le autorizzazioni Collaboratore rete nella subnet all'interno della rete virtuale. Se si vuole definire un ruolo personalizzato invece di usare il ruolo predefinito Collaboratore di rete, sono necessarie le autorizzazioni seguenti:
    • Microsoft.Network/virtualNetworks/subnets/join/action
    • Microsoft.Authorization/roleAssignments/write
    • Microsoft.Network/virtualNetworks/subnets/read (necessario solo se si definiscono subnet e CIDR)
  • La subnet assegnata al pool di nodi del servizio Azure Kubernetes non può essere una subnet delegata.
  • Il servizio Azure Kubernetes non applica i gruppi di sicurezza di rete (NSG) alla relativa subnet e non modifica alcun gruppo di sicurezza di rete associato a tale subnet. Se si specifica la propria subnet e si aggiungono i gruppi di sicurezza di rete associati a tale subnet, è necessario assicurarsi che le regole di sicurezza nei gruppi di sicurezza di rete consentano il traffico all'interno dell'intervallo CIDR del nodo. Per altre informazioni, vedere Gruppi di sicurezza di rete.

Passaggi successivi