Condividi tramite


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:

  1. 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
  1. 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, BGPo 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

Passaggi successivi