Condividi tramite


Concetti di rete per le applicazioni in Servizio Azure Kubernetes (AKS)

In un approccio allo sviluppo delle applicazioni come microservizi basati su contenitori, i componenti dell'applicazione devono interagire per elaborare le proprie attività. Kubernetes offre diverse risorse che consentono questa cooperazione:

  • È possibile connettersi alle applicazioni ed esporle internamente o esternamente.
  • È possibile creare applicazioni a disponibilità elevata bilanciando il carico delle applicazioni.
  • È possibile limitare il flusso del traffico di rete verso o tra pod e nodi per migliorare la sicurezza.
  • È possibile configurare il traffico in ingresso per la terminazione SSL/TLS o l'instradamento di più componenti per le applicazioni più complesse.

Questo articolo introduce i concetti di base correlati alle funzionalità di rete per le applicazioni nel servizio Azure Kubernetes:

Nozioni di base sulla rete kubernetes

Kubernetes usa un livello di rete virtuale per gestire l'accesso all'interno e tra le applicazioni o i relativi componenti:

  • Nodi Kubernetes e rete virtuale: i nodi Kubernetes sono connessi a una rete virtuale. Questa configurazione consente ai pod (unità di base di distribuzione in Kubernetes) di avere connettività in ingresso e in uscita.

  • Componente Kube-proxy: kube-proxy viene eseguito in ogni nodo ed è responsabile della fornitura delle funzionalità di rete necessarie.

Per informazioni sulle funzionalità specifiche di Kubernetes:

  • Bilanciamento del carico: è possibile usare un servizio di bilanciamento del carico per distribuire il traffico di rete in modo uniforme tra varie risorse.
  • Controller di ingresso: facilitano il routing di livello 7, essenziale per indirizzare il traffico dell'applicazione.
  • Controllo del traffico in uscita: Kubernetes consente di gestire e controllare il traffico in uscita dai nodi del cluster.
  • Criteri di rete: questi criteri consentono misure di sicurezza e filtri per il traffico di rete nei pod.

Nel contesto della piattaforma Azure:

  • Azure semplifica la rete virtuale per i cluster del servizio Azure Kubernetes (servizio Azure Kubernetes).
  • La creazione di un servizio di bilanciamento del carico Kubernetes in Azure configura simultaneamente la risorsa di bilanciamento del carico corrispondente Azure.
  • Quando si aprono le porte di rete ai pod, Azure configura automaticamente le regole del gruppo di sicurezza di rete necessarie.
  • Azure può anche gestire le configurazioni DNS esterne per il routing delle applicazioni HTTP quando vengono stabilite nuove route di ingresso.

Azure reti virtuali

Nel servizio Azure Kubernetes è possibile distribuire un cluster che usa uno dei modelli di rete seguenti:

  • Modello di rete overlay: la rete sovrapposta è il modello di rete più comune usato in Kubernetes. Ai pod viene assegnato un indirizzo IP da un CIDR privato e logicamente separato dalla sottorete della rete virtuale di Azure in cui sono distribuiti i nodi di AKS. Questo modello consente una scalabilità più semplice e migliorata rispetto al modello di rete piatto.
  • Modello di rete piatta: un modello di rete piatta in AKS assegna ai pod indirizzi IP ricavati da una subnet dalla stessa rete virtuale Azure in cui si trovano i nodi AKS. Qualsiasi traffico che lascia i cluster non è SNAT e l'indirizzo IP del pod viene esposto direttamente alla destinazione. Questo modello può essere utile per scenari come l'esposizione di indirizzi IP pod a servizi esterni.

Per altre informazioni sui modelli di rete nel servizio Azure Kubernetes, vedere Rete CNI nel servizio Azure Kubernetes.

Controllare il traffico in uscita (in uscita)

I cluster del servizio Azure Kubernetes vengono distribuiti in una rete virtuale e hanno dipendenze in uscita da servizi esterni a tale rete virtuale, quasi completamente definiti con nomi di dominio completi (FQDN). Il servizio Azure Kubernetes offre diverse opzioni di configurazione in uscita che consentono di personalizzare la modalità di accesso a queste risorse esterne.

Importante

A partire da March 31, 2026, Servizio Azure Kubernetes (AKS) non supporta più l'accesso in uscita predefinito per le macchine virtuali. I nuovi cluster AKS che usano l'opzione rete virtuale gestita da AKS inseriscono le subnet del cluster in subnet private per impostazione predefinita (defaultOutboundAccess = false). Questa impostazione non influisce sul traffico del cluster gestito dal servizio Azure Kubernetes, che usa percorsi in uscita configurati in modo esplicito. Potrebbe influire su scenari non supportati, ad esempio la distribuzione di altre risorse nella stessa subnet. I cluster che usano reti virtuali BYO non sono interessati da questa modifica. Nelle configurazioni supportate non è necessaria alcuna azione. Per ulteriori informazioni sulla disattivazione, vedere l'annuncio di disattivazione degli aggiornamenti di Azure. Per rimanere informati sugli annunci e aggiornamenti, seguite le note di rilascio di AKS.

Opzioni di configurazione in uscita

Per altre informazioni sui tipi di configurazione in uscita del cluster del servizio Azure Kubernetes supportati, vedere Customize cluster egress with outbound types in Servizio Azure Kubernetes (AKS).

Per impostazione predefinita, i cluster del servizio Azure Kubernetes hanno accesso a Internet in uscita senza restrizioni, che consente ai nodi e ai servizi eseguiti di accedere alle risorse esterne in base alle esigenze. Se lo si desidera, è possibile limitare il traffico in uscita.

Per altre informazioni su come limitare il traffico in uscita dal cluster, vedere Controllare il traffico in uscita per i nodi del cluster nel servizio Azure Kubernetes.

Gruppi di sicurezza di rete

Un gruppo di sicurezza di rete filtra il traffico per le macchine virtuali, ad esempio i nodi del servizio Azure Kubernetes. Quando si creano servizi, ad esempio un LoadBalancer, la piattaforma Azure configura automaticamente tutte le regole del gruppo di sicurezza di rete necessarie.

Non è necessario configurare manualmente le regole dei gruppi di sicurezza di rete per filtrare il traffico per i pod in un cluster del servizio Azure Kubernetes. È possibile definire le porte e l'inoltro necessari come parte dei manifesti del servizio Kubernetes e consentire alla piattaforma Azure di creare o aggiornare le regole appropriate.

È anche possibile usare i criteri di rete per applicare automaticamente le regole di filtro del traffico ai pod.

Per altre informazioni, vedere Come i gruppi di sicurezza di rete filtrano il traffico di rete.

Requisiti di rete virtuale personalizzati

Quando si utilizza una rete virtuale personalizzata con cluster AKS, se sono state aggiunte regole del gruppo di sicurezza di rete (NSG) per limitare il traffico tra subnet diverse, assicurarsi che le regole di sicurezza del NSG consentano i seguenti tipi di comunicazione:

Destinazione Fonte Protocollo Porto Utilizzo
CIDR subnet APIServer Subnet del cluster TCP 443 e 4443 Obbligatorio per abilitare la comunicazione tra i nodi e il server API.
CIDR subnet APIServer Azure Load Balancer TCP 9988 Obbligatorio per abilitare la comunicazione tra Azure Load Balancer e il server API. È anche possibile abilitare tutte le comunicazioni tra la Azure Load Balancer e il CIDR della subnet del server API.
CIDR nodo CIDR nodo Tutti i protocolli Tutte le porte Obbligatorio per abilitare la comunicazione tra nodi.
CIDR nodo CIDR pod Tutti i protocolli Tutte le porte Obbligatorio per il routing del traffico del servizio.
CIDR pod CIDR pod Tutti i protocolli Tutte le porte Obbligatorio per il traffico da Pod a Pod e da Pod a Servizio, incluso il traffico DNS.

Questi requisiti si applicano sia ai cluster AKS Standard che ai cluster automatici del servizio Azure Kubernetes quando si usano reti virtuali personalizzate.

Risoluzione DNS

La risoluzione DNS è essenziale per la scoperta e la comunicazione dei servizi in AKS. Per impostazione predefinita, AKS utilizza CoreDNS per fornire la risoluzione dei nomi interna per i pod e i servizi.

Per migliorare le prestazioni e l'affidabilità del DNS, AKS offre LocalDNS, che distribuisce un proxy DNS su ogni nodo. LocalDNS risolve le query in locale, riducendo la latenza ed eliminando la pressione della conntrack tabella dal traffico DNS. Supporta anche la gestione delle risposte memorizzate nella cache durante le interruzioni DNS upstream, migliorando la resilienza del carico di lavoro. LocalDNS è particolarmente utile in cluster o ambienti di grandi dimensioni con volumi di query DNS elevati. Per informazioni dettagliate sulla configurazione, vedere Configurare LocalDNS.

Criteri di rete

Per impostazione predefinita, tutti i pod in un cluster del servizio Azure Kubernetes possono inviare e ricevere traffico senza limitazioni. Per una maggiore sicurezza, definire regole che controllino il flusso di traffico, come ad esempio:

  • Le applicazioni back-end vengono esposte solo ai servizi front-end necessari.
  • I componenti del database sono accessibili solo ai livelli applicazione a cui si connettono.

I criteri di rete sono una funzionalità Kubernetes disponibile nel servizio Azure Kubernetes che consente di controllare il flusso del traffico tra pod. È possibile consentire o negare il traffico al pod in base a impostazioni quali le etichette assegnate, lo spazio dei nomi o la porta di traffico. Sebbene i gruppi di sicurezza di rete siano migliori per i nodi del servizio Azure Kubernetes, i criteri di rete sono un modo nativo del cloud più adatto per controllare il flusso del traffico per i pod. Poiché i pod vengono creati dinamicamente in un cluster del servizio Azure Kubernetes, i criteri di rete necessari possono essere applicati automaticamente.

Per ulteriori informazioni, vedere Traffico sicuro tra pod utilizzando criteri di rete in Servizio Azure Kubernetes (AKS).

Passaggi successivi

Per iniziare a usare la rete del servizio Azure Kubernetes, creare e configurare un cluster del servizio Azure Kubernetes con intervalli di indirizzi IP personalizzati usando Azure overlay CNI o Azure CNI.

Per le procedure consigliate associate, vedere Procedure consigliate per la connettività di rete e la sicurezza nel servizio Azure Kubernetes.

Per altre informazioni sui concetti fondamentali di Kubernetes e del servizio Azure Kubernetes, vedere gli articoli seguenti: