Distribuire l'estensione per i cluster Kubernetes con abilitazione di MetalLB per Azure Arc con l'interfaccia della riga di comando di Azure
Si applica a: Locale di Azure, versione 23H2
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. Il servizio Azure Kubernetes abilitato da Azure Arc supporta la creazione di un'istanza del servizio di bilanciamento del carico MetalLB nel cluster Kubernetes usando un'estensione Arc.
Prerequisiti
- Un cluster Kubernetes con abilitazione di Azure Arc con almeno un nodo Linux. È possibile creare un cluster Kubernetes in Locale di Azure, versione 23H2 usando l'interfaccia della riga di comando di Azure o il portale di Azure. Il servizio Azure Kubernetes nei cluster locali di Azure versione 23H2 è abilitato per impostazione predefinita.
- Assicurarsi di avere un numero sufficiente di indirizzi IP per il servizio di bilanciamento del carico. Per il servizio Azure Kubernetes in locale, versione 23H2, assicurarsi che gli indirizzi IP riservati per il servizio di bilanciamento del carico non siano in conflitto con gli indirizzi IP nelle 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 che tu capisca il funzionamento di Metal LB. 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
il comando
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 del tenant di Azure per ottenere Application.Read.All
il ruolo.
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
il comando
Se non si dispone dell'autorizzazione Graph Application.Read.All, è possibile seguire questa procedura:
- Registrare se
Microsoft.KubernetesRuntime RP
non è già stato 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 altre informazioni sull'appartenenza a utenti e guest, 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 ottenuto il $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
Distribuire il servizio di bilanciamento del 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 |
Modalità per il servizio di bilanciamento del carico MetalLB. I valori supportati sono ARP , BGP o Both . |
$ipRange |
Intervallo IP per il servizio di bilanciamento del carico MetalLB in ARP modalità 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 servizi di bilanciamento del carico che dispongono o Both
annunciano BGP
la modalità. La creazione di peer BGP è obbligatoria se si usa il servizio di bilanciamento del carico MetalLB in BGP
modalità o Both
.
Configurare le variabili seguenti prima di procedere:
Parametro | Descrizione |
---|---|
$peerName |
Nome del peer BGP. |
$myASN |
Numero AS da usare per la fine locale della sessione. |
$peerASN |
Numero AS previsto dalla fine remota della sessione. |
$peerIP |
Indirizzo da comporre 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