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.
Si applica a: AKS locale su Azure
Lo scopo principale di un servizio di bilanciamento del carico è distribuire il traffico tra più nodi in un cluster Kubernetes. Ciò consente di evitare tempi di inattività e migliorare le prestazioni complessive delle applicazioni. AKS abilitato da Azure Arc supporta la creazione di un'istanza del bilanciamento del carico MetalLB nel cluster Kubernetes usando un'estensione di Arc.
Prerequisiti
- Un cluster Kubernetes abilitato per Azure Arc con almeno un nodo Linux. Puoi creare un cluster Kubernetes su Azure Local utilizzando Azure CLI o il portale di Azure. I cluster locali di AKS su Azure hanno il supporto Arc abilitato per impostazione predefinita.
- Assicurarsi di avere un numero sufficiente di indirizzi IP per il servizio di bilanciamento del carico. Per AKS su Azure Locale, assicurarsi che gli indirizzi IP riservati per il bilanciamento del carico non siano in conflitto con gli indirizzi IP delle reti logiche delle macchine virtuali Arc e gli indirizzi IP del piano di controllo. Per altre informazioni sulla pianificazione e sulla rete degli indirizzi IP in Kubernetes, vedere Requisiti di rete per Kubernetes e pianificazione degli indirizzi IP per Kubernetes.
- Questa guida pratica presuppone la comprensione del funzionamento di MetalLB. Per altre informazioni, vedere la panoramica di MetalLB per Kubernetes.
Installare l'estensione dell'interfaccia della riga di comando di Azure.
Eseguire il comando seguente per installare l'estensione dell'interfaccia della riga di comando di Azure necessaria:
az extension add -n k8s-runtime --upgrade
Abilitare l'estensione Arc per MetalLB
Configurare le variabili seguenti prima di procedere:
Parametro | Descrizione |
---|---|
$subId |
ID sottoscrizione di Azure del cluster Kubernetes. |
$rgName |
Gruppo di risorse di Azure del cluster Kubernetes. |
$clusterName |
Nome del cluster Kubernetes. |
Opzione 1: Abilitare l'estensione Arc per MetalLB usando az k8s-runtime load-balancer enable
Per abilitare l'estensione Arc per MetalLB usando il comando seguente, è necessario disporre dell'autorizzazione Graph Application.Read.All. È possibile verificare se si dispone di questa autorizzazione accedendo alla sottoscrizione di Azure ed eseguendo il comando seguente:
az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --output json
Se il comando non riesce, contattare l'amministratore dell'istanza di Azure per acquisire il ruolo Application.Read.All
.
Se si dispone dell'autorizzazione, è possibile usare il az k8s-runtime load-balancer enable
comando per installare l'estensione Arc e registrare il provider di risorse per il cluster Kubernetes. Il --resource-uri
parametro fa riferimento all'ID resource manager del cluster Kubernetes:
az k8s-runtime load-balancer enable --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName
Opzione 2: Abilitare l'estensione Arc per MetalLB usando az k8s-extension add
Se non si dispone dell'autorizzazione Graph Application.Read.All, è possibile seguire questa procedura:
Registrare
Microsoft.KubernetesRuntime RP
se non lo hai già fatto. Si noti che è necessario eseguire la registrazione una sola volta per ogni sottoscrizione di Azure. È anche possibile registrare i provider di risorse usando il portale di Azure. Per altre informazioni su come registrare i provider di risorse e le autorizzazioni necessarie, vedere come registrare un provider di risorse.az provider register -n Microsoft.KubernetesRuntime
È possibile verificare se il provider di risorse è stato registrato correttamente eseguendo il comando seguente.
az provider show -n Microsoft.KubernetesRuntime -o table
Output previsto:
Namespace RegistrationPolicy RegistrationState --------------------------- -------------------- ------------------- Microsoft.KubernetesRuntime RegistrationRequired Registered
Per installare l'estensione Arc per MetalLB, ottenere l'AppID del provider di risorse dell'estensione MetalLB e quindi eseguire il comando di creazione dell'estensione. È necessario eseguire i comandi seguenti una volta per ogni cluster Arc Kubernetes.
Ottenere l'ID applicazione dell'estensione Arc eseguendo az ad sp list. Per eseguire il comando seguente, è necessario essere membri
user
del tenant di Azure. Per ulteriori informazioni sui membri utenti e ospiti, vedere Autorizzazioni utente predefinite in Microsoft Entra ID.$objID = az ad sp list --filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" --query "[].id" --output tsv
Dopo aver creato
objID
, è possibile installare l'estensione MetalLB Arc nel cluster Kubernetes. Per eseguire il comando seguente, è necessario avere il ruolo collaboratore dell'estensione Kubernetes .az k8s-extension create --cluster-name $clusterName -g $rgName --cluster-type connectedClusters --extension-type microsoft.arcnetworking --config k8sRuntimeFpaObjectId=$objID -n arcnetworking
Implementare il bilanciatore di carico MetalLB nel cluster Kubernetes
È ora possibile creare un servizio di bilanciamento del carico per il cluster Kubernetes in modalità remota eseguendo il az k8s-runtime load-balancer create
comando . Questo comando crea una risorsa personalizzata di tipo IPAddressPool
nello spazio dei nomi kube-system
.
Configurare le variabili seguenti prima di procedere:
Parametro | Descrizione |
---|---|
$lbName |
Nome dell'istanza del servizio di bilanciamento del carico MetalLB. |
$advertiseMode |
La modalità del bilanciatore di carico MetalLB. I valori supportati sono ARP , BGP o Both . |
$ipRange |
Intervallo IP per il load balancer MetalLB in modalità ARP o Both . |
Se la modalità di annuncio è BGP
o Both
, crea anche una risorsa personalizzata di tipo BGPAdvertisement
. Se la modalità di annuncio è ARP
o Both
, crea anche una risorsa personalizzata di tipo L2Advertisement
:
az k8s-runtime load-balancer create --load-balancer-name $lbName --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName --addresses $ipRange --advertise-mode $advertiseMode
Creare un peer BGP per il cluster Kubernetes
Creare un peer BGP per il cluster Kubernetes in modalità remota eseguendo il az k8s-runtime bgp-peer create
comando . Si noti che il peer BGP è efficace per tutti i bilanciatori di carico che dispongono della modalità di annuncio BGP
o Both
. La configurazione dei peer BGP è obbligatoria se si usa il bilanciamento del carico MetalLB in modalità BGP
o Both
.
Configurare le variabili seguenti prima di procedere:
Parametro | Descrizione |
---|---|
$peerName |
Il nome del tuo peer BGP. |
$myASN |
Numero AS da usare per la fine locale della sessione. |
$peerASN |
Numero AS atteso dal terminale remoto della sessione. |
$peerIP |
Indirizzo a cui connettersi quando si stabilisce la sessione. |
az k8s-runtime bgp-peer create --bgp-peer-name $peerName --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName --my-asn $myASN --peer-asn $peerASN --peer-address $peerIP
Passaggi successivi
Usare l'estensione GitOps Flux v2 Arc per distribuire applicazioni nel cluster Kubernetes