Condividi tramite


Distribuire l'estensione MetalLB per gli cluster Kubernetes abilitati su Azure Arc utilizzando l'interfaccia della riga di comando di Azure.

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:

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