Udostępnij przez


Wdrażanie rozszerzenia dla usługi MetalLB dla klastrów Kubernetes z obsługą usługi Azure Arc przy użyciu interfejsu wiersza polecenia platformy Azure

Dotyczy: AKS w usłudze Azure Local

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 MetalLB w klastrze Kubernetes z wykorzystaniem rozszerzenia Arc.

Wymagania wstępne

  • Klaster Kubernetes z funkcją Azure Arc, z co najmniej jednym węzłem Linux. Możesz utworzyć klaster Kubernetes w usłudze Azure lokalnie, używając Azure CLI lub portalu Azure. Usługa AKS w klastrach lokalnych platformy Azure 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 Local 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 platformy Kubernetes i planowanie adresów IP dla platformy Kubernetes.
  • W tym przewodniku z instrukcjami założono, że rozumiesz, jak działa moduł MetalLB. Aby uzyskać więcej informacji, zobacz omówienie usługi MetalLB dla platformy Kubernetes.

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 Arc dla systemu MetalLB

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 Arc dla systemu MetalLB przy użyciu polecenia az k8s-runtime load-balancer enable

Aby włączyć rozszerzenie Arc dla systemu MetalLB 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żawcy platformy Azure, aby uzyskać przypisaną rolę Application.Read.All.

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 Arc dla usługi MetalLB przy użyciu polecenia az k8s-extension add

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
    
  2. Aby zainstalować rozszerzenie Arc dla MetalLB, uzyskaj identyfikator AppID dostawcy zasobu rozszerzenia MetalLB, a następnie uruchom polecenie rozszerzenia create. Dla każdego klastra Kubernetes usługi Arc, należy uruchomić następujące polecenia tylko raz.

    Uzyskaj identyfikator aplikacji rozszerzenia Arc, uruchamiając polecenie az ad sp list. Aby uruchomić następujące polecenie, musisz być user członkiem twojego tenanta 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 '00001111-aaaa-2222-bbbb-3333cccc4444'" --query "[].id" --output tsv
    

    Gdy będziesz mieć objID, możesz zainstalować rozszerzenie MetalLB Arc w klastrze Kubernetes. Aby uruchomić następujące 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 MetalLB.
$advertiseMode Tryb dla równoważenia obciążenia MetalLB. Obsługiwane wartości to ARP, BGPlub Both.
$ipRange Zakres adresów IP dla modułu równoważenia obciążenia MetalLB w trybie ARP lub Both.

Jeśli tryb reklamowania 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

Utwórz równorzędny element BGP dla klastra Kubernetes

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

Przed kontynuowaniem skonfiguruj następujące zmienne:

Parametr Opis
$peerName Nazwa rówieśnika 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

Wdrażanie aplikacji w klastrze Kubernetes przy użyciu rozszerzenia GitOps Flux v2 Arc