Dela via


Distribuera tillägg för MetalLB för Azure Arc-aktiverade Kubernetes-kluster med Azure CLI

Gäller för: AKS på Azure Local

Huvudsyftet med en lastbalanserare är att distribuera trafik över flera noder i ett Kubernetes-kluster. Detta kan bidra till att förhindra stilleståndstid och förbättra programmets övergripande prestanda. AKS aktiverad av Azure Arc har stöd för att skapa en MetalLB-lastbalanserare i ditt Kubernetes-kluster genom ett Arc-tillägg.

Förutsättningar

  • Ett Azure Arc-aktiverat Kubernetes-kluster med minst en Linux-nod. Du kan skapa ett Kubernetes-kluster på Azure Local med hjälp av Azure CLI eller Azure-portalen. AKS på lokala Azure-kluster är Arc-aktiverade som standard.
  • Kontrollera att du har tillräckligt med IP-adresser för lastbalanseraren. För AKS på Azure Local kontrollerar du att IP-adresserna som är reserverade för lastbalanseraren inte är i konflikt med IP-adresserna i logiska arc-VM-nätverk och kontrollplans-IP-adresser. Mer information om planering och nätverk av IP-adresser i Kubernetes finns i Nätverkskrav för Kubernetes och IP-adressplanering för Kubernetes.
  • Den här guiden förutsätter att du förstår hur MetalLB fungerar. Mer information hittar du i översikten för MetalLB för Kubernetes.

Installera Azure CLI-tillägget

Kör följande kommando för att installera det nödvändiga Azure CLI-tillägget:

az extension add -n k8s-runtime --upgrade

Aktivera Arc-tillägg för MetalLB

Konfigurera följande variabler innan du fortsätter:

Parameter Beskrivning
$subId Azure-prenumerations-ID för ditt Kubernetes-kluster.
$rgName Azure-resursgrupp för ditt Kubernetes-kluster.
$clusterName Namnet på ditt Kubernetes-kluster.

Alternativ 1: Aktivera Arc-tillägget för MetalLB med hjälp av az k8s-runtime load-balancer enable

Om du vill aktivera Arc-tillägget för MetalLB med hjälp av följande kommando måste du ha Graph-behörigheten Application.Read.All. Du kan kontrollera om du har den här behörigheten genom att logga in på din Azure-prenumeration och köra följande kommando:

az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --output json

Om kommandot misslyckas kontaktar du azure-klientadministratören för att hämta Application.Read.All rollen.

Om du har behörigheten az k8s-runtime load-balancer enable kan du använda kommandot för att installera Arc-tillägget och registrera resursprovidern för kubernetes-klustret. Parametern --resource-uri refererar till resource manager-ID:t för ditt Kubernetes-kluster:

az k8s-runtime load-balancer enable --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName

Alternativ 2: Aktivera Arc-tillägget för MetalLB med hjälp av az k8s-extension add

Om du inte har Graph-behörigheten Application.Read.All kan du följa dessa steg:

  1. Om du inte redan har gjort det, registrera Microsoft.KubernetesRuntime RP. Observera att du bara behöver registrera dig en gång per Azure-prenumeration. Du kan också registrera resursprovidrar med hjälp av Azure Portal. Mer information om hur du registrerar resursprovidrar och nödvändiga behörigheter finns i registrera en resursprovider.

    az provider register -n Microsoft.KubernetesRuntime
    

    Du kan kontrollera om resursprovidern har registrerats genom att köra följande kommando.

    az provider show -n Microsoft.KubernetesRuntime -o table
    

    Förväntad utdata:

    Namespace                    RegistrationPolicy    RegistrationState
    ---------------------------  --------------------  -------------------
    Microsoft.KubernetesRuntime  RegistrationRequired  Registered
    
  2. Om du vill installera Arc-tillägget för MetalLB hämtar du AppID för MetalLB-tilläggsresursprovidern och kör sedan kommandot för att skapa tillägget. Du måste köra följande kommandon en gång per Arc Kubernetes-kluster.

    Hämta program-ID för Arc-tillägget genom att köra az ad sp list. För att kunna köra följande kommando måste du vara user medlem i din Azure-klientorganisation. Mer information om användar- och gästmedlemskap finns i standardanvändarbehörigheter i Microsoft Entra-ID.

    $objID = az ad sp list --filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" --query "[].id" --output tsv
    

    När du har objID, kan du installera MetalLB Arc-tillägget i kubernetes-klustret. Om du vill köra följande kommando måste du ha rollen Kubernetes-tilläggsdeltagare .

    az k8s-extension create --cluster-name $clusterName -g $rgName --cluster-type connectedClusters --extension-type microsoft.arcnetworking --config k8sRuntimeFpaObjectId=$objID -n arcnetworking
    

Distribuera MetalLB-lastbalanserare i ditt Kubernetes-kluster

Nu kan du skapa en lastbalanserare för kubernetes-klustret via fjärranslutning genom att az k8s-runtime load-balancer create köra kommandot . Det här kommandot skapar en anpassad resurs av typen IPAddressPool i namnområdet kube-system.

Konfigurera följande variabler innan du fortsätter:

Parameter Beskrivning
$lbName Namnet på din MetalLB-lastbalanserareinstans.
$advertiseMode Läget för din MetalLB-lastbalanserare. Värden som stöds är ARP, BGPeller Both.
$ipRange IP-intervallet för MetalLB-lastbalanseraren i ARP eller Both läge.

Om annonseringsläget är BGP eller Bothskapar det också en anpassad resurs av typen BGPAdvertisement. Om annonseringsläget är ARP eller Bothskapar det också en anpassad resurs av typen 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

Skapa en BGP-peer för ditt Kubernetes-kluster

Skapa en BGP-peer för kubernetes-klustret via fjärranslutning genom att az k8s-runtime bgp-peer create köra kommandot . Observera att BGP-peer är effektiv för alla lastbalanserare som har BGP eller Both annonserar läge. Det är obligatoriskt att skapa BGP-peer-datorer om du använder MetalLB-lastbalanseraren i BGP eller Both läge.

Konfigurera följande variabler innan du fortsätter:

Parameter Beskrivning
$peerName Namnet på din BGP-granne.
$myASN AS-nummer som ska användas för den lokala änden av sessionen.
$peerASN AS-nummer att förvänta sig från den fjärranslutna änden av sessionen.
$peerIP Adress till uppringning när sessionen upprättas.
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

Nästa steg

Använda GitOps Flux v2 Arc-tillägget för att distribuera program i ditt Kubernetes-kluster