Sdílet prostřednictvím


Nasazení rozšíření MetalLB pro clustery Kubernetes s aktivovanou podporou Azure Arc pomocí Azure CLI

Platí pro: AKS v Azure Local

Hlavním účelem nástroje pro vyrovnávání zatížení je distribuce provozu mezi více uzlů v clusteru Kubernetes. To může pomoct zabránit výpadkům a zlepšit celkový výkon aplikací. Služba AKS povolená službou Azure Arc podporuje vytvoření instance nástroje pro vyrovnávání zatížení MetalLB v clusteru Kubernetes pomocí rozšíření Arc.

Požadavky

  • Cluster Kubernetes s podporou Azure Arc s alespoň jedním linuxovým uzlem. Cluster Kubernetes můžete vytvořit v Azure Local pomocí Azure CLI nebo webu Azure Portal. AKS v místních clusterech Azure jsou ve výchozím nastavení s podporou Arc.
  • Ujistěte se, že máte dostatek IP adres pro nástroj pro vyrovnávání zatížení. V případě AKS v Azure Local se ujistěte, že IP adresy rezervované pro nástroj pro vyrovnávání zatížení nejsou v konfliktu s IP adresami v logických sítích virtuálních počítačů Arc a IP rovině řízení. Další informace o plánování IP adres a sítích v Kubernetes najdete v tématu Požadavky na sítě pro Kubernetes a plánování IP adres pro Kubernetes.
  • Tento návod předpokládá, že rozumíte fungování nástroje MetalLB. Další informace najdete v přehledu o MetalLB pro Kubernetes.

Instalace rozšíření Azure CLI

Spuštěním následujícího příkazu nainstalujte potřebné rozšíření Azure CLI:

az extension add -n k8s-runtime --upgrade

Povolení rozšíření Arc pro MetalLB

Před pokračováním nakonfigurujte následující proměnné:

Parametr Popis
$subId Identifikační číslo předplatného Azure vašeho Kubernetes clusteru.
$rgName Skupina prostředků Azure vašeho clusteru Kubernetes
$clusterName Název clusteru Kubernetes.

Možnost 1: Povolení rozšíření Arc pro MetalLB použitím az k8s-runtime load-balancer enable

Pokud chcete povolit rozšíření Arc pro MetalLB pomocí následujícího příkazu, musíte mít oprávnění Graph Application.Read.All. Toto oprávnění můžete zkontrolovat tak, že se přihlásíte ke svému předplatnému Azure a spustíte následující příkaz:

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

Pokud příkaz selže, kontaktujte správce tenanta Azure, abyste získali roli Application.Read.All.

Pokud máte oprávnění, můžete pomocí az k8s-runtime load-balancer enable příkazu nainstalovat rozšíření Arc a zaregistrovat poskytovatele prostředků pro cluster Kubernetes. Parametr --resource-uri odkazuje na ID Resource Manageru vašeho clusteru Kubernetes:

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

Možnost 2: Povolení rozšíření Arc pro MetalLB pomocí az k8s-extension add

Pokud nemáte oprávnění Graphu Application.Read.All, můžete postupovat takto:

  1. Zaregistrujte si Microsoft.KubernetesRuntime RP, jestli jste to ještě neudělali. Mějte na paměti, že pro každé předplatné Azure stačí registrovat jenom jednou. Poskytovatele prostředků můžete také zaregistrovat pomocí webu Azure Portal. Další informace o tom, jak zaregistrovat poskytovatele prostředků a požadovaná oprávnění, najdete v tématu o tom, jak zaregistrovat poskytovatele prostředků.

    az provider register -n Microsoft.KubernetesRuntime
    

    Spuštěním následujícího příkazu můžete zkontrolovat, jestli je poskytovatel prostředků úspěšně zaregistrovaný.

    az provider show -n Microsoft.KubernetesRuntime -o table
    

    Očekávaný výstup:

    Namespace                    RegistrationPolicy    RegistrationState
    ---------------------------  --------------------  -------------------
    Microsoft.KubernetesRuntime  RegistrationRequired  Registered
    
  2. Pokud chcete nainstalovat rozšíření Arc pro MetalLB, získejte AppID zprostředkovatele prostředků rozšíření MetalLB a poté spusťte příkaz k vytvoření rozšíření. Pro cluster Kubernetes Arc musíte spustit následující příkazy jednou.

    Získejte aplikační ID rozšíření Arc spuštěním az ad sp list. Abyste mohli spustit následující příkaz, musíte být user členem vašeho tenanta Azure. Další informace o členství uživatele a hosta naleznete v části Výchozí uživatelská oprávnění v Microsoft Entra ID.

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

    Jakmile budete mít objID, můžete do clusteru Kubernetes nainstalovat rozšíření MetalLB Arc. Pokud chcete spustit následující příkaz, musíte mít roli přispěvatele rozšíření Kubernetes .

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

Nasadit MetalLB, nástroj pro vyrovnávání zatížení, ve vašem clusteru Kubernetes.

Teď můžete vytvořit nástroj pro vyrovnávání zatížení pro cluster Kubernetes vzdáleně spuštěním az k8s-runtime load-balancer create příkazu. Tento příkaz vytvoří vlastní prostředek typu IPAddressPool v jmenném prostoru kube-system.

Před pokračováním nakonfigurujte následující proměnné:

Parametr Popis
$lbName Název instance vašeho MetalLB vyrovnávače zatížení.
$advertiseMode Režim vašeho nástroje pro vyrovnávání zatížení MetalLB. Podporované hodnoty jsou ARP, BGPnebo Both.
$ipRange Rozsah IP adres pro vyrovnávač zatížení MetalLB v režimu ARP nebo Both.

Pokud je režim inzerce BGP nebo Both, vytvoří také vlastní prostředek typu BGPAdvertisement. Pokud je ARPBothinzerování nebo , vytvoří také vlastní prostředek 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

Vytvořit BGP peera pro cluster Kubernetes

Spuštěním az k8s-runtime bgp-peer create příkazu vytvořte partnerský uzel protokolu BGP pro cluster Kubernetes vzdáleně. Mějte na paměti, že BGP peer je efektivní pro všechny zátěžové vyrovnávače, které jsou v režimu BGP nebo Both inzerce. Vytváření BGP peerů je povinné, pokud používáte nástroj pro vyrovnávání zatížení MetalLB v režimu BGP nebo Both.

Před pokračováním nakonfigurujte následující proměnné:

Parametr Popis
$peerName Název vašeho BGP partnera.
$myASN Číslo AS, které se má použít pro místní zakončení relace.
$peerASN Číslo AS, které se má očekávat od vzdáleného konce relace.
$peerIP Adresa pro vytáčení při navazování relace
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

Další kroky

Nasazení aplikací do clusteru Kubernetes pomocí rozšíření GitOps Flux v2 Arc