Udostępnij za pośrednictwem


Tworzenie modułu równoważenia obciążenia usługi MetalLB przy użyciu usługi Azure Arc i interfejsu wiersza polecenia platformy Azure

Dotyczy: Azure Stack HCI, wersja 23H2

Głównym celem modułu równoważenia obciążenia jest dystrybucja ruchu między wieloma węzłami w klastrze Kubernetes. Może to pomóc zapobiec przestojom i poprawić ogólną wydajność aplikacji. Usługa AKS włączona przez usługę Azure Arc obsługuje tworzenie wystąpienia modułu równoważenia obciążenia usługi MetalLB w klastrze Kubernetes przy użyciu Arc Kubernetes Runtime rozszerzenia k8s.

Wymagania wstępne

  • Klaster Kubernetes z włączoną usługą Azure Arc z co najmniej jednym węzłem systemu Linux. Klaster Kubernetes można utworzyć w usłudze Azure Stack HCI 23H2 przy użyciu interfejsu wiersza polecenia platformy Azure lub witryny Azure Portal. Usługa AKS w klastrach azure Stack HCI 23H2 jest domyślnie włączona w usłudze Arc.
  • Upewnij się, że masz wystarczające adresy IP dla modułu równoważenia obciążenia. W przypadku usługi AKS w usłudze Azure Stack HCI 23H2 upewnij się, że adresy IP zarezerwowane dla modułu równoważenia obciążenia nie powodują konfliktu z adresami IP w sieciach logicznych maszyn wirtualnych usługi Arc i adresach IP płaszczyzny sterowania. Aby uzyskać więcej informacji na temat planowania adresów IP i sieci na platformie Kubernetes, zobacz Wymagania dotyczące sieci dla usługi AKS w usłudze Azure Stack HCI 23H2.
  • W tym przewodniku z instrukcjami założono, że rozumiesz, jak działa moduł równoważenia obciążenia metalowego. Aby uzyskać więcej informacji, zobacz omówienie modułu MetalLB w klastrach Kubernetes usługi Arc.

Instalowanie rozszerzenia interfejsu wiersza polecenia platformy Azure

Uruchom następujące polecenie, aby zainstalować niezbędne rozszerzenie interfejsu wiersza polecenia platformy Azure:

az extension add -n k8s-runtime --upgrade

Włączanie rozszerzenia MetalLB Arc

Przed kontynuowaniem skonfiguruj następujące zmienne:

Parametr Opis
$subId Identyfikator subskrypcji platformy Azure klastra Kubernetes.
$rgName Grupa zasobów platformy Azure klastra Kubernetes.
$clusterName Nazwa klastra Kubernetes.

Opcja 1. Włączanie rozszerzenia MetalLB Arc przy użyciu az k8s-runtime load-balancer enable polecenia

Aby włączyć rozszerzenie MetalLB Arc przy użyciu następującego polecenia, musisz mieć uprawnienie Graph Application.Read.All. Możesz sprawdzić, czy masz to uprawnienie, logując się do subskrypcji platformy Azure i uruchamiając następujące polecenie:

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

Jeśli polecenie zakończy się niepowodzeniem, skontaktuj się z administratorem dzierżawy platformy Azure, aby uzyskać Application.Read.All rolę.

Jeśli masz uprawnienie, możesz użyć az k8s-runtime load-balancer enable polecenia , aby zainstalować rozszerzenie Arc i zarejestrować dostawcę zasobów dla klastra Kubernetes. Parametr --resource-uri odnosi się do identyfikatora menedżera zasobów klastra Kubernetes.

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

Opcja 2. Włączanie rozszerzenia Kubernetes usługi MetalLB Arc przy użyciu az k8s-extension add polecenia

Jeśli nie masz uprawnień programu Graph Application.Read.All, możesz wykonać następujące kroki:

  1. Zarejestruj element Microsoft.KubernetesRuntime RP , jeśli jeszcze tego nie zrobiono. Należy pamiętać, że musisz zarejestrować się tylko raz w ramach subskrypcji platformy Azure. Możesz również zarejestrować dostawców zasobów przy użyciu witryny Azure Portal. Aby uzyskać więcej informacji na temat rejestrowania dostawców zasobów i wymaganych uprawnień, zobacz jak zarejestrować dostawcę zasobów.
az provider register -n Microsoft.KubernetesRuntime

Możesz sprawdzić, czy dostawca zasobów został pomyślnie zarejestrowany, uruchamiając następujące polecenie.

az provider show -n Microsoft.KubernetesRuntime -o table

Oczekiwane dane wyjściowe:

Namespace                    RegistrationPolicy    RegistrationState
---------------------------  --------------------  -------------------
Microsoft.KubernetesRuntime  RegistrationRequired  Registered
  1. Aby zainstalować rozszerzenie MetalLB Arc, uzyskaj identyfikator AppID dostawcy zasobów rozszerzenia MetalLB, a następnie uruchom polecenie create rozszerzenia. Następujące polecenia należy uruchomić raz w klastrze Kubernetes usługi Arc.

Uzyskaj identyfikator aplikacji rozszerzenia Arc, uruchamiając polecenie az ad sp list. Aby uruchomić następujące polecenie, musisz być user członkiem dzierżawy platformy Azure. Aby uzyskać więcej informacji na temat członkostwa użytkownika i gościa, zobacz domyślne uprawnienia użytkownika w identyfikatorze Entra firmy Microsoft.

$objID = az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --query "[].id" --output tsv

Po utworzeniu $objID można zainstalować rozszerzenie MetalLB Arc w klastrze Kubernetes. Aby uruchomić poniższe polecenie, musisz mieć rolę współautora rozszerzenia Kubernetes.

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

Wdrażanie modułu równoważenia obciążenia usługi MetalLB w klastrze Kubernetes

Teraz możesz utworzyć moduł równoważenia obciążenia dla klastra Kubernetes zdalnie, uruchamiając az k8s-runtime load-balancer create polecenie . To polecenie tworzy niestandardowy zasób typu IPAddressPool w przestrzeni nazw kube-system.

Przed kontynuowaniem skonfiguruj następujące zmienne:

Parametr Opis
$lbName Nazwa wystąpienia modułu równoważenia obciążenia usługi MetalLB.
$advertiseMode Tryb modułu równoważenia obciążenia usługi MetalLB. Obsługiwane wartości to ARP, BGPlub Both.
$ipRange Zakres adresów IP modułu równoważenia obciążenia usługi MetalLB w ARP trybie lub Both .

Jeśli tryb anonsowania to BGP lub Both, tworzy również niestandardowy zasób rodzaju BGPAdvertisement. Jeśli tryb anonsowania to ARP lub Both, tworzy również niestandardowy zasób typu 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

Tworzenie elementu równorzędnego BGP dla klastra Kubernetes

Zdalnie utwórz element równorzędny protokołu BGP dla klastra Kubernetes, uruchamiając az k8s-runtime bgp-peer create polecenie . Należy pamiętać, że element równorzędny BGP jest skuteczny dla wszystkich modułów równoważenia obciążenia, które mają BGP lub Both anonsują tryb. Tworzenie elementów równorzędnych BGP jest obowiązkowe, jeśli używasz modułu równoważenia obciążenia usługi MetalLB w trybie lub Both w BGP trybie.

Przed kontynuowaniem skonfiguruj następujące zmienne:

Parametr Opis
$peerName Nazwa elementu równorzędnego BGP.
$myASN Numer AS do użycia na końcu lokalnej sesji.
$peerASN Numer AS oczekiwany od zdalnego zakończenia sesji.
$peerIP Adres do wybierania podczas ustanawiania sesji.
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

Następne kroki