Concetti relativi al networking per le applicazioni nel 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.
- La creazione di un servizio di bilanciamento del carico Kubernetes in Azure configura contemporaneamente la risorsa del servizio di bilanciamento del carico di Azure corrispondente.
- 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 in ingresso.
Reti virtuali di Azure
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 subnet della rete virtuale di Azure in cui vengono distribuiti i nodi del servizio Azure Kubernetes. Questo modello consente una scalabilità più semplice e migliorata rispetto al modello di rete piatto.
- Modello di rete piatto: un modello di rete piatto nel servizio Azure Kubernetes assegna indirizzi IP ai pod da una subnet dalla stessa rete virtuale di Azure dei nodi del servizio Azure Kubernetes. 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 dai servizi all'esterno di tale rete virtuale. Queste dipendenze in uscita sono quasi completamente definite con nomi di dominio completi (FQDN). 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, vedere Controllare il traffico in uscita per i nodi del cluster del 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 LoadBalancer, la piattaforma Azure configura automaticamente le eventuali regole dei gruppi 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 gli inoltri necessari come parte dei manifesti del servizio Kubernetes e lasciare che la piattaforma Azure crei o aggiorni 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.
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.
Criteri di rete è una funzionalità Kubernetes disponibile nel servizio Azure Kubernetes che consente di controllare il flusso di traffico tra i 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. Anche se i gruppi di sicurezza di rete sono migliori per i nodi del servizio Azure Kubernetes, i criteri di rete sono un modo 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 altre informazioni, vedere Proteggere il traffico tra i pod usando criteri di rete nel servizio Azure Kubernetes.
Passaggi successivi
Per iniziare a usare le funzionalità di rete del servizio Azure Kubernetes, creare e configurare un cluster del servizio Azure Kubernetes con gli intervalli di indirizzi IP esistenti usando Overlay di Azure 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:
Azure Kubernetes Service