Personalizzare l'uscita del cluster con i tipi in uscita nel servizio Azure Kubernetes (AKS)
Puoi personalizzare l'uscita per un cluster AKS in base a scenari specifici. Per impostazione predefinita, il servizio Azure Kubernetes effettua il provisioning del bilanciamento del carico di uno SKU standard, che verrà configurato e usato per l'uscita come opzione predefinita. La configurazione predefinita potrebbe, però, non soddisfare i requisiti di tutti gli scenari se gli indirizzi IP pubblici non sono consentiti o se per l'uscita sono necessari hop aggiuntivi.
Questo articolo mostra i vari tipi di connettività in uscita disponibili nei cluster AKS.
Nota
Ora puoi aggiornare il outboundType
dopo la creazione del cluster.
Importante
Nei cluster non privati il traffico del cluster del server API viene instradato ed elaborato tramite il tipo in uscita dei cluster. Per evitare che il traffico del server API venga elaborato come traffico pubblico, prendere in considerazione l'uso di un cluster privato o consultare la funzionalità Integrazione rete virtuale del server API.
Limiti
- Per impostare
outboundType
, sono necessari cluster del servizio Azure Kubernetes convm-set-type
impostato suVirtualMachineScaleSets
eload-balancer-sku
impostato suStandard
.
Tipi in uscita nel servizio Azure Kubernetes
Puoi configurare un cluster del servizio Azure Kubernetes usando i tipi in uscita seguenti: bilanciamento del carico, gateway NAT o routing definito dall'utente. Il tipo in uscita influisce solo sul traffico in uscita del cluster. Per ulteriori informazioni, vedere Configurazione dei controller in ingresso.
Tipo in uscita di loadBalancer
Il bilanciamento del carico viene usato per l'uscita tramite un indirizzo IP pubblico assegnato dal servizio Azure Kubernetes. Il tipo in uscita loadBalancer
supporta i servizi Kubernetes di tipo loadBalancer
, che prevedono l'uscita dal bilanciamento del carico creato dal provider di risorse del servizio Azure Kubernetes.
Se loadBalancer
è impostato, il servizio Azure Kubernetes completa automaticamente la configurazione seguente:
- Viene effettuato il provisioning di un indirizzo IP pubblico per l'uscita del cluster.
- L'indirizzo IP pubblico viene assegnato alla risorsa del bilanciamento del carico.
- Per i nodi agente nel cluster vengono impostati pool back-end per il bilanciamento del carico.
Per ulteriori informazioni, vedi Usare un bilanciamento del carico standard nel servizio Azure Kubernetes.
Tipo in uscita di managedNatGateway
o userAssignedNatGateway
Se managedNatGateway
o userAssignedNatGateway
sono selezionati per outboundType
, il servizio Azure Kubernetes si basa sul gateway NAT di rete di Azure per l'uscita del cluster.
- Seleziona
managedNatGateway
quando usi le reti virtuali gestite. Il servizio Azure Kubernetes effettua il provisioning di un gateway NAT e lo collega alla subnet del cluster. - Seleziona
userAssignedNatGateway
quando usi la rete virtuale bring-your-own. Questa opzione richiede che tu abbia effettuato il provisioning di un gateway NAT prima della creazione del cluster.
Per ulteriori informazioni, vedi Gateway NAT gestito con servizio Azure Kubernetes.
Tipo in uscita di userDefinedRouting
Nota
Il tipo in uscita userDefinedRouting
rappresenta uno scenario di rete avanzato e richiede una configurazione di rete appropriata.
Se userDefinedRouting
è impostato, il servizio Azure Kubernetes non configurerà automaticamente i percorsi in uscita. La configurazione in uscita deve essere eseguita da te.
Devi distribuire il cluster del servizio Azure Kubernetes in una rete virtuale esistente con una subnet configurata in precedenza. Poiché non stai usando un'architettura Load Balancer standard, devi indicare l'uscita in modo esplicito. Questa architettura richiede l'invio esplicito del traffico in uscita a un'appliance, ad esempio un firewall, un gateway, un proxy, oppure la gestione di NAT da un indirizzo IP pubblico assegnato al servizio di bilanciamento del carico standard o all'appliance.
Per ulteriori informazioni, vedi Configurazione dell'uscita del cluster tramite il routing definito dall'utente.
Tipo in uscita di none
(anteprima)
Importante
Il none
tipo in uscita richiede un'attenta pianificazione per garantire che il cluster funzioni come previsto senza dipendenze impreviste nei servizi esterni. Per i cluster completamente isolati, vedere Considerazioni sul cluster isolato.
Se none
è impostato, il servizio Azure Kubernetes non configurerà automaticamente i percorsi in uscita. Questa opzione è simile a userDefinedRouting
ma non richiede una route predefinita come parte della convalida.
Il none
tipo in uscita è supportato in scenari di rete virtuale BYO (Bring Your Own) e in scenari di rete virtuale gestita. Tuttavia, è necessario assicurarsi che il cluster del servizio Azure Kubernetes venga distribuito in un ambiente di rete in cui vengono definiti percorsi in uscita espliciti, se necessario. Per gli scenari di rete virtuale BYO, il cluster deve essere distribuito in una rete virtuale esistente con una subnet configurata in precedenza. Poiché il servizio Azure Kubernetes non esegue il provisioning di un servizio di bilanciamento del carico standard o di un'infrastruttura in uscita, è necessario stabilire percorsi in uscita espliciti, se necessario. Ciò può includere il routing del traffico a un firewall, un proxy, un gateway o altre configurazioni di rete personalizzate.
Tipo in uscita di block
(anteprima)
Importante
Il block
tipo in uscita richiede un'attenta pianificazione per garantire che non esistano dipendenze di rete non intenzionali. Per i cluster completamente isolati, vedere Considerazioni sul cluster isolato.
Se block
è impostato, il servizio Azure Kubernetes configurerà le regole di rete per bloccare attivamente tutto il traffico in uscita dal cluster. Questa opzione è utile per ambienti altamente sicuri in cui la connettività in uscita deve essere limitata.
Quando si usa block
:
- Il servizio Azure Kubernetes garantisce che nessun traffico Internet pubblico possa lasciare il cluster tramite regole del gruppo di sicurezza di rete. Il traffico della rete virtuale non è interessato.
- È necessario consentire in modo esplicito qualsiasi traffico in uscita necessario tramite configurazioni di rete aggiuntive.
L'opzione block
offre un livello aggiuntivo di isolamento della rete, ma richiede un'attenta pianificazione per evitare l'interruzione di carichi di lavoro o dipendenze.
Aggiornare outboundType
dopo la creazione del cluster
La modifica del tipo in uscita dopo la creazione del cluster distribuirà o rimuoverà le risorse come richiesto per inserire il cluster nella nuova configurazione in uscita.
Le tabelle seguenti mostrano i percorsi di migrazione supportati tra i tipi in uscita per le reti virtuali gestite e BYO.
Percorsi di migrazione supportati per la rete virtuale gestita
Ogni riga indica se è possibile eseguire la migrazione del tipo in uscita ai tipi elencati nella parte superiore. "Supportato" indica che la migrazione è possibile, mentre "Non supportato" o "N/A" significa che non è.
Da|A | loadBalancer |
managedNATGateway |
userAssignedNATGateway |
userDefinedRouting |
none |
block |
---|---|---|---|---|---|---|
loadBalancer |
N/D | Supportato | Non supportato | Non supportato | Supportata | Supportato |
managedNATGateway |
Supportata | N/D | Non supportato | Non supportato | Supportata | Supportato |
userAssignedNATGateway |
Non supportato | Non supportato | N/D | Non supportato | Non supportato | Non supportato |
none |
Supportata | Supportato | Non supportato | Non supportato | N/D | Supportato |
block |
Supportato | Supportato | Non supportato | Non supportato | Supportato | N/D |
Percorsi di migrazione supportati per la rete virtuale BYO
Da|A | loadBalancer |
managedNATGateway |
userAssignedNATGateway |
userDefinedRouting |
none |
block |
---|---|---|---|---|---|---|
loadBalancer |
N/D | Non supportato | Supportata | Supportato | Supportato | Non supportato |
managedNATGateway |
Non supportato | N/D | Non supportato | Non supportato | Non supportato | Non supportato |
userAssignedNATGateway |
Supportato | Non supportato | N/D | Supportato | Supportato | Non supportato |
userDefinedRouting |
Supportato | Non supportato | Supportato | N/D | Supportato | Non supportato |
none |
Supportato | Non supportato | Supportata | Supportata | N/D | Non supportato |
La migrazione è supportata solo tra loadBalancer
, managedNATGateway
(se si usa una rete virtuale gestita) userAssignedNATGateway
e userDefinedRouting
(se si usa una rete virtuale personalizzata).
Avviso
La migrazione del tipo in uscita ai tipi gestiti dall'utente (userAssignedNATGateway
e userDefinedRouting
) modificherà gli indirizzi IP pubblici in uscita del cluster.
Se Authorized IP ranges (Intervalli IP autorizzati) è abilitato, assicurati che venga aggiunto un nuovo intervallo IP in uscita all'intervallo IP autorizzato.
Avviso
Modificare il tipo in uscita in un cluster causa un'interruzione della connettività di rete e comporterà una modifica dell'indirizzo IP in uscita del cluster. Se sono state configurate regole del firewall per limitare il traffico dal cluster, devi aggiornarle in modo che corrispondano al nuovo indirizzo IP in uscita.
Aggiorna il cluster per usare un nuovo tipo in uscita
Nota
Per eseguire la migrazione del tipo in uscita, devi usare una versione >= 2.56 dell'interfaccia della riga di comando di Azure. Usa az upgrade
per eseguire l'aggiornamento alla versione più recente dell'interfaccia della riga di comando di Azure.
- Aggiorna la configurazione in uscita del tuo cluster usando il comando
az aks update
.
Aggiorna il cluster da loadbalancer a managedNATGateway
az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type managedNATGateway --nat-gateway-managed-outbound-ip-count <number of managed outbound ip>
Aggiorna il cluster da managedNATGateway a loadbalancer
az aks update --resource-group <resourceGroup> --name <clusterName> \
--outbound-type loadBalancer \
<--load-balancer-managed-outbound-ip-count <number of managed outbound ip>| --load-balancer-outbound-ips <outbound ip ids> | --load-balancer-outbound-ip-prefixes <outbound ip prefix ids> >
Avviso
Non riutilizzare un indirizzo IP già in uso nelle configurazioni in uscita precedenti.
Aggiorna il cluster da managedNATGateway a userDefinedRouting
- Aggiungi route
0.0.0.0/0
alla tabella di route predefinita. Fai riferimento a Personalizza l'uscita del cluster con una tabella di routing definita dall'utente nel servizio Azure Kubernetes (AKS)
az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userDefinedRouting
Aggiorna il cluster da loadbalancer a userAssignedNATGateway nello scenario di rete virtuale BYO
- Associa il gateway NAT alla subnet a cui è associato il carico di lavoro. Fare riferimento a Creare un gateway NAT gestito o assegnato dall'utente
az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userAssignedNATGateway
Passaggi successivi
- Configurare il bilanciamento del carico standard in un cluster del servizio Azure Kubernetes
- Configurare il gateway NAT in un cluster del servizio Azure Kubernetes
- Configurare il routing definito dall'utente in un cluster del servizio Azure Kubernetes
- Documentazione del gateway NAT di Azure
- Panoramica delle UDR di networking di Azure
- Gestire le tabelle di route
Azure Kubernetes Service