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
- Azure Load Balancer è disponibile in due SKU: Basic e Standard. Lo SKU Standard viene usato per impostazione predefinita quando si crea un cluster del servizio Azure Kubernetes. Lo SKU Standard consente di accedere alle funzionalità aggiunte, ad esempio un pool back-end di dimensioni maggiori, più pool di nodi, zone di disponibilità ed è sicuro per impostazione predefinita. Si tratta dello SKU del servizio di bilanciamento del carico consigliato per il servizio Azure Kubernetes. Per altre informazioni sugli SKU Basic e Standard, vedere Confronto tra SKU di 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 Azure CLI, Azure PowerShell o il portale di Azure.
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.
È possibile definire lo SKU del bilanciatore del carico solo quando si crea un cluster AKS. Non è possibile modificare lo SKU dell'istanza di bilanciamento del carico dopo la creazione di un cluster del servizio Azure Kubernetes.
È possibile usare un solo tipo di SKU dell'istanza di bilanciamento del carico (Basic o Standard) in un singolo cluster.
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.
Creare 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-load-balancer-ipv4per un indirizzo IPv4 eservice.beta.kubernetes.io/azure-load-balancer-ipv6per un indirizzo IPv6. -
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 è stato deprecato in seguito a Kubernetes upstream e non può supportare un doppio 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 52sOttenere informazioni più dettagliate sul servizio usando 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 ...
Passo successivo
Azure Kubernetes Service