Freigeben über


Erstellen eines MetalLB-Lastenausgleichs mithilfe von Azure Arc und der Azure CLI

Gilt für: Azure Stack HCI, Version 23H2

Der Standard Zweck eines Lastenausgleichs besteht darin, Datenverkehr auf mehrere Knoten in einem Kubernetes-Cluster zu verteilen. Dies kann dazu beitragen, Ausfallzeiten zu vermeiden und die Gesamtleistung von Anwendungen zu verbessern. AKS, das von Azure Arc aktiviert ist, unterstützt das Erstellen von MetalLB-Lastenausgleichs-instance in Ihrem Kubernetes-Cluster mithilfe der Arc Networking k8s-Erweiterung.

Voraussetzungen

  • Ein Kubernetes-Cluster mit mindestens einem Linux-Knoten. Sie können einen Kubernetes-Cluster in Azure Stack HCI 23H2 mithilfe der Azure CLI oder der Azure-Portal erstellen.
  • Stellen Sie sicher, dass Sie über genügend IP-Adressen für den Lastenausgleich verfügen. Stellen Sie sicher, dass die für den Lastenausgleich reservierten IP-Adressen nicht mit den IP-Adressen in logischen Netzwerken und IP-Adressen der Steuerungsebene in Arc-VM in Konflikt geraten. Weitere Informationen zur IP-Adressplanung und zum Netzwerkbetrieb in Kubernetes finden Sie unter Netzwerkanforderungen für AKS in Azure Stack HCI 23H2.
  • In dieser Anleitung wird davon ausgegangen, dass Sie verstehen, wie Metal LB funktioniert. Weitere Informationen finden Sie in der Übersicht für MetalLB in Arc Kubernetes-Clustern.

Installieren der Erweiterung für die Azure-Befehlszeilenschnittstelle

Führen Sie den folgenden Befehl aus, um die erforderliche Azure CLI-Erweiterung zu installieren:

az extension add -n k8s-runtime --upgrade

Aktivieren der Load Balancer Arc-Erweiterung

Konfigurieren Sie die folgenden Variablen, bevor Sie fortfahren:

Parameter BESCHREIBUNG
$subId Azure-Abonnement-ID Ihres Kubernetes-Clusters.
$rgName Azure-Ressourcengruppe für Ihren Kubernetes-Cluster.
$clusterName Der Name Ihres AKS Arc-Clusters.

Verwenden Sie den az k8s-runtime load-balancer enable Befehl, um die Arc-Erweiterung zu installieren und den Ressourcenanbieter für Ihren Kubernetes-Cluster zu registrieren. Der --resource-uri Parameter bezieht sich auf die Resource Manager-ID Ihres AKS Arc-Clusters.

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

Bereitstellen des MetalLB-Lastenausgleichs in Ihrem Kubernetes-Cluster

Sie können jetzt einen Lastenausgleich für Ihren Kubernetes-Cluster remote erstellen, indem Sie den az k8s-runtime load-balancer create Befehl ausführen. Dieser Befehl erstellt eine benutzerdefinierte Ressource IPAddressPool im Namespace kube-system.

Konfigurieren Sie die folgenden Variablen, bevor Sie fortfahren:

Parameter BESCHREIBUNG
$lbName Der Name Ihres MetalLB-Lastenausgleichsmoduls instance.
$advertiseMode Der Modus für Ihren MetalLB-Lastenausgleich. Unterstützte Werte sind ARP, BGPoder Both.
$ipRange Der IP-Bereich für den MetalLB-Lastenausgleich in oder Both modusARP.

Wenn der Ankündigungsmodus oder BothistBGP, wird auch eine benutzerdefinierte Ressource vom Typ BGPAdvertisementerstellt. Wenn der Ankündigungsmodus oder BothistARP, wird auch eine benutzerdefinierte Ressource vom Typ L2Advertisementerstellt:

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

Erstellen eines BGP-Peers für Ihren Kubernetes-Cluster

Erstellen Sie einen BGP-Peer für Ihren Kubernetes-Cluster remote, indem Sie den az k8s-runtime bgp-peer create Befehl ausführen. Beachten Sie, dass der BGP-Peer für alle Lastenausgleichsmodule wirksam ist, die den Modus haben BGP oder Both ankündigen. Das Erstellen von BGP-Peers ist obligatorisch, wenn Sie den MetalLB-Lastenausgleich in oder Both im BGP Modus verwenden.

Konfigurieren Sie die folgenden Variablen, bevor Sie fortfahren:

Parameter BESCHREIBUNG
$peerName Der Name Ihres BGP-Peers.
$myASN AS-Nummer, die für das lokale Ende der Sitzung verwendet werden soll.
$peerASN AS-Nummer, die vom Remoteende der Sitzung erwartet werden soll.
$peerIP Adresse, die beim Einrichten der Sitzung gewählt werden soll.
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ächste Schritte

-Verwenden der GitOps Flux v2 Arc-Erweiterung zum Bereitstellen von Anwendungen in Ihrem Kubernetes-Cluster