Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Load Balancer opera al livello 4 del modello OSI (Open Systems Interconnect) che supporta scenari in ingresso e in uscita. Distribuisce i flussi in ingresso che arrivano al front-end del servizio di bilanciamento del carico alle istanze del pool back-end.
Un servizio di bilanciamento del carico pubblico integrato con il servizio Azure Kubernetes svolge due scopi:
- Fornire connessioni in uscita ai nodi del cluster all'interno della rete virtuale AKS traducendo l'indirizzo IP privato in un indirizzo IP pubblico che fa parte del pool di uscita.
- Fornire l'accesso alle applicazioni tramite i servizi Kubernetes di tipo
LoadBalancer, consentendo di ridimensionare facilmente le applicazioni e creare servizi a disponibilità elevata.
Questo articolo illustra l'integrazione con un servizio di bilanciamento del carico pubblico nel servizio Azure Kubernetes. Per l'integrazione del servizio di bilanciamento del carico interno, vedere Usare un servizio di bilanciamento del carico interno nel servizio Azure Kubernetes.
Prerequisiti
- Il servizio Azure Kubernetes supporta la Azure Load Balancer SKU Standard, che viene usata per impostazione predefinita quando si crea un cluster del servizio Azure Kubernetes. Lo SKU Standard consente di accedere a funzionalità come un pool back-end di dimensioni maggiori, più pool di nodi, zone di disponibilità ed è sicuro per impostazione predefinita. Lo SKU Basic è stato disattivato il 30 settembre 2025 e AKS non lo supporta più. Se si dispone di un cluster AKS esistente che usa lo SKU Basic, vedere Eseguire l'aggiornamento da Basic Load Balancer in AKS. Per altre informazioni sugli SKU Load Balancer, vedere confronto degli SKU Azure Load Balancer.
- Per un elenco completo delle annotazioni supportate per i servizi Kubernetes con tipo
LoadBalancer, vedere Annotazioni di LoadBalancer. - Questo articolo presuppone che sia presente un cluster del servizio Azure Kubernetes con Azure Load Balancer con SKU Standard. Se è necessario un cluster AKS, è possibile crearne uno usando interfaccia della riga di comando di Azure, Azure PowerShell o il portale di Azure.
- È necessario che
kubectlsia installato e configurato per connettersi al cluster AKS. Per installarekubectl, scaricare le credenziali del cluster e verificare la connessione, vedere Connettersi al cluster.
Important
Se si preferisce usare il gateway, il firewall o il proxy per fornire una connessione in uscita, è possibile ignorare la creazione del pool in uscita del servizio di bilanciamento del carico e il rispettivo indirizzo IP front-end usando il tipo in uscita come UserDefinedRouting (UDR). Il tipo in uscita definisce il metodo in uscita per un cluster e per impostazione predefinita è di tipo LoadBalancer.
Limitations
Quando si creano e si gestiscono cluster del servizio Azure Kubernetes che supportano un'istanza di bilanciamento del carico con SKU Standard, si applicano le limitazioni seguenti:
Il servizio Azure Kubernetes gestisce il ciclo di vita e le operazioni dei nodi dell'agente. La modifica delle risorse IaaS associate ai nodi dell'agente non è supportata. Un esempio di operazione non supportata consiste nell'apportare modifiche manuali al gruppo di risorse del servizio di bilanciamento del carico.
È necessario almeno un indirizzo IP pubblico o un prefisso dell'indirizzo IP per consentire il traffico in uscita dal cluster del servizio Azure Kubernetes. L'indirizzo IP pubblico o il prefisso dell'indirizzo IP è necessario per mantenere la connettività tra il piano di controllo e i nodi dell'agente e per mantenere la compatibilità con le versioni precedenti del servizio Azure Kubernetes. Sono disponibili le opzioni seguenti per specificare indirizzi IP pubblici o prefissi IP con un bilanciamento del carico SKU Standard :
- Specificare gli indirizzi IP pubblici personalizzati.
- Specificare i prefissi degli indirizzi IP pubblici personalizzati.
- Specificare un numero massimo di 100 per consentire al cluster del servizio Azure Kubernetes di creare una certa quantità di indirizzi IP pubblici dello SKU Standard nello stesso gruppo di risorse come cluster del servizio Azure Kubernetes. Questo gruppo di risorse viene in genere denominato con
MC_all'inizio. Il servizio Azure Kubernetes assegna l'indirizzo IP pubblico all'istanza di bilanciamento del carico con SKU Standard. Per impostazione predefinita, un indirizzo IP pubblico viene creato automaticamente nello stesso gruppo di risorse del cluster del servizio Azure Kubernetes, se non è specificato alcun indirizzo IP pubblico, prefisso di indirizzo IP pubblico o numero di indirizzi IP. È necessario anche consentire gli indirizzi pubblici ed evitare di creare criteri di Azure che vietino la creazione di IP.
Non è possibile riutilizzare un indirizzo IP pubblico creato dal servizio Azure Kubernetes come indirizzo IP pubblico personalizzato (BYO). È necessario creare e gestire tutti gli indirizzi IP personalizzati.
Non è possibile modificare lo SKU del load balancer modificando direttamente la risorsa del load balancer gestita da AKS. Per eseguire la migrazione di un cluster del servizio Azure Kubernetes esistente dallo SKU Basic ritirato allo SKU Standard , usare il processo di aggiornamento del servizio Azure Kubernetes supportato. La migrazione comporta un periodo di inattività e non può essere annullata una volta avviata.
Le istanze di bilanciamento del carico con SKU Standard supportano solo indirizzi IP con SKU Standard.
Il servizio collegamento privato non è supportato quando il tipo di pool back-end del servizio di bilanciamento del carico è impostato su
nodeIP.
Creare un servizio di bilanciamento del carico in AKS
Dopo aver creato un cluster del servizio Azure Kubernetes con tipo LoadBalancer in uscita (impostazione predefinita), il cluster è pronto per l'uso del servizio di bilanciamento del carico per esporre i servizi.
Verifica che il cluster abbia almeno un pod in esecuzione e pronto con l'etichetta
app: public-app. Il manifesto del servizio nel passaggio successivo seleziona i pod con questa etichetta, ma non crea una distribuzione.kubectl get pods -l app=public-appCreare un manifesto del servizio denominato
public-svc.yaml, che crea un servizio pubblico di tipoLoadBalancer.apiVersion: v1 kind: Service metadata: name: public-svc spec: type: LoadBalancer ports: - port: 80 selector: app: public-app
Specificare l'indirizzo IP del servizio di bilanciamento del carico
Se si vuole usare un indirizzo IP specifico con il servizio di bilanciamento del carico, sono disponibili due opzioni per specificare l'indirizzo IP:
-
Impostare le annotazioni del servizio (scelta consigliata): usare
service.beta.kubernetes.io/azure-pip-nameper specificare una risorsa IP pubblica esistente in base al nome. Questa annotazione è l'opzione più efficiente e ti aiuta a evitare potenziali limitazioni della velocità. È anche possibile usareservice.beta.kubernetes.io/azure-load-balancer-ipv4per un indirizzo IPv4 eservice.beta.kubernetes.io/azure-load-balancer-ipv6per un indirizzo IPv6. Per i requisiti relativi alla risorsa IP pubblico, al gruppo di risorse e all'identità, vedere Usare un indirizzo IP pubblico statico con il bilanciatore del carico di AKS. -
Aggiungere la proprietà LoadBalancerIP al manifesto YAML del servizio di bilanciamento del carico: aggiungere la
Service.Spec.LoadBalancerIPproprietà al manifesto YAML del servizio di bilanciamento del carico. Questo campo è deprecato dopo Kubernetes upstream e non supporta dual stack. L'utilizzo corrente rimane invariato e si prevede che i servizi esistenti funzionino senza modifiche.
Distribuire il manifesto del servizio di bilanciamento del carico
Distribuire il manifesto del servizio pubblico usando
kubectl applye specificare il nome del manifesto YAML.kubectl apply -f public-svc.yamlAzure Load Balancer è configurato con un nuovo indirizzo IP pubblico che precede il nuovo servizio. Poiché Azure Load Balancer può avere più indirizzi IP front-end, ogni nuovo servizio distribuito ottiene un nuovo indirizzo IP front-end dedicato a cui accedere in modo univoco.
Verificare che il servizio sia stato creato e che il servizio di bilanciamento del carico sia configurato usando il
kubectl get servicecomando .kubectl get service public-svcQuando si visualizzano i dettagli del servizio, l'indirizzo IP pubblico creato per questo servizio nel servizio di bilanciamento del carico viene visualizzato nella colonna EXTERNAL-IP dell'output. Potrebbero essere necessari alcuni minuti per passare dall'indirizzo IP <in sospeso> a un indirizzo IP pubblico effettivo. L'output di esempio seguente mostra la corretta creazione del servizio:
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default public-svc LoadBalancer 10.0.39.110 203.0.113.187 80:32068/TCP 52sPer ottenere informazioni più dettagliate sul servizio, usare il
kubectl describe servicecomando .kubectl describe service public-svcL'output di esempio seguente è una versione condensata dell'output dopo l'esecuzione di
kubectl describe service. LoadBalancer Ingress mostra l'indirizzo IP esterno esposto dal servizio. IP mostra gli indirizzi interni.Name: public-svc Namespace: default Labels: <none> Annotations: <none> Selector: app=public-app ... IP: 10.0.39.110 ... LoadBalancer Ingress: 203.0.113.187 ... TargetPort: 80/TCP NodePort: 32068/TCP ... Session Affinity: None External Traffic Policy: Cluster ...