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:
- 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
- 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 , BGP lub 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