Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
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.KubernetesRuntimeDu kan kontrollera om resursprovidern har registrerats genom att köra följande kommando.
az provider show -n Microsoft.KubernetesRuntime -o tableFörväntad utdata:
Namespace RegistrationPolicy RegistrationState --------------------------- -------------------- ------------------- Microsoft.KubernetesRuntime RegistrationRequired RegisteredOm 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
usermedlem 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 tsvNä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