Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: AKS auf Azure Local
Der Hauptzweck eines Load Balancers besteht darin, den Datenverkehr über 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 wird, unterstützt die Erstellung einer MetalLB-Lastenausgleichsinstanz auf Ihrem Kubernetes-Cluster mithilfe einer Arc-Erweiterung.
Voraussetzungen
- Ein Azure Arc-fähiger Kubernetes-Cluster mit mindestens einem Linux-Knoten. Sie können einen Kubernetes-Cluster auf Azure Local mit der Azure CLI oder dem Azure Portalerstellen. AKS auf lokalen Azure-Clustern sind standardmäßig arcfähig.
- Stellen Sie sicher, dass Sie genügend IP-Adressen für den Load Balancer haben. Stellen Sie für AKS auf Azure Local sicher, dass die für den Load Balancer reservierten IP-Adressen nicht mit den IP-Adressen in den logischen Netzwerken der Arc-VMs und den IPs der Steuerebene in Konflikt geraten. Weitere Informationen zur Planung von IP-Adressen und Netzwerken in Kubernetes finden Sie unter Netzwerkanforderungen für Kubernetes und IP-Adressplanung für Kubernetes.
- In dieser Anleitung wird davon ausgegangen, dass Sie verstehen, wie MetalLB funktioniert. Weitere Informationen finden Sie in der Übersicht zu MetalLB für Kubernetes.
Installieren der Azure CLI-Erweiterung
Führen Sie den folgenden Befehl aus, um die erforderliche Azure CLI-Erweiterung zu installieren:
az extension add -n k8s-runtime --upgrade
Aktivieren der Arc-Erweiterung für MetalLB
Konfigurieren Sie die folgenden Variablen, bevor Sie fortfahren:
| Parameter | Beschreibung |
|---|---|
$subId |
Azure-Abonnement-ID Ihres Kubernetes-Clusters. |
$rgName |
Azure-Ressourcengruppe Ihres Kubernetes-Clusters. |
$clusterName |
Der Name Ihres Kubernetes-Clusters. |
Option 1: Aktivieren der Arc-Erweiterung für MetalLB mit az k8s-runtime load-balancer enable
Um die Arc-Erweiterung für MetalLB mithilfe des folgenden Befehls zu aktivieren, müssen Sie über die Graph permission Application.Read.All. Sie können überprüfen, ob Sie diese Berechtigung haben, indem Sie sich bei Ihrem Azure-Abonnement anmelden und den folgenden Befehl ausführen:
az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --output json
Wenn der Befehl fehlschlägt, wenden Sie sich an Ihren Azure-Tenant-Administrator, um die Application.Read.All role.
Wenn Sie die Erlaubnis dazu haben, können Sie die az k8s-runtime load-balancer enable verwenden, um die Arc-Erweiterung zu installieren und den Ressourcenanbieter für Ihren Kubernetes-Cluster zu registrieren. Der --resource-uri Parameter bezieht sich auf die Ressourcen-Manager-ID Ihres Kubernetes-Clusters:
az k8s-runtime load-balancer enable --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName
Option 2: Aktivieren der Arc-Erweiterung für MetalLB mit az k8s-extension add
Wenn Sie nicht über die Graph permission Application.Read.Allverfügen, können Sie diese Schritte ausführen:
Registrieren Sie die
Microsoft.KubernetesRuntime RP, falls Sie dies nicht bereits getan haben. Beachten Sie, dass Sie sich nur einmal pro Azure-Abonnement registrieren müssen. Sie können Ressourcenanbieter auch über das Azure-Portal registrieren. Weitere Informationen über die Registrierung von Ressourcenanbietern und die erforderlichen Berechtigungen finden Sie unter Ressourcenanbieter registrieren.az provider register -n Microsoft.KubernetesRuntimeSie können überprüfen, ob der Ressourcenanbieter erfolgreich registriert wurde, indem Sie den folgenden Befehl ausführen.
az provider show -n Microsoft.KubernetesRuntime -o tableErwartete Ausgabe:
Namespace RegistrationPolicy RegistrationState --------------------------- -------------------- ------------------- Microsoft.KubernetesRuntime RegistrationRequired RegisteredUm die Arc-Erweiterung für MetalLB zu installieren, holen Sie sich die AppID des Ressourcenanbieters der MetalLB-Erweiterung und führen Sie anschließend den Befehl zum Erstellen der Erweiterung aus. Sie müssen die folgenden Befehle einmal pro Arc Kubernetes-Cluster ausführen.
Ermitteln Sie die Anwendungs-ID der Arc-Erweiterung durch Ausführung von az ad sp list. Um den folgenden Befehl ausführen zu können, müssen Sie ein
userMitglied Ihres Azure-Tenants sein. Weitere Informationen zur Benutzer- und Gastmitgliedschaft finden Sie unter Standardbenutzerberechtigungen in Microsoft Entra ID.$objID = az ad sp list --filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" --query "[].id" --output tsvSobald Sie die
objIDhaben, können Sie die MetalLB Arc-Erweiterung auf Ihrem Kubernetes-Cluster installieren. Um den folgenden Befehl auszuführen, müssen Sie über die Rolle der Kubernetes-Erweiterungsmitwirkende verfügen.az k8s-extension create --cluster-name $clusterName -g $rgName --cluster-type connectedClusters --extension-type microsoft.arcnetworking --config k8sRuntimeFpaObjectId=$objID -n arcnetworking
Stellen Sie den MetalLB-Load-Balancer auf Ihrem Kubernetes-Cluster bereit
Wenn der Kernel anhält oder die Ergebnisse nicht wie erwartet sind, laden Sie die kqlmagic-Erweiterung erneut. az k8s-runtime load-balancer create command. Dieser Befehl erstellt eine benutzerdefinierte Ressource des Typs IPAddressPool im Namespace kube-system.
Konfigurieren Sie die folgenden Variablen, bevor Sie fortfahren:
| Parameter | Beschreibung |
|---|---|
$lbName |
Der Name Ihrer MetalLB Load Balancer Instanz. |
$advertiseMode |
Der Modus für Ihren MetalLB Load Balancer. Unterstützte Werte sind ARP, BGP, or Both. |
$ipRange |
Der IP-Bereich für den MetalLB Load Balancer im Modus ARP or Both mode. |
Wenn der Modus advertise BGP or Bothist, wird auch eine benutzerdefinierte Ressource der Art BGPAdvertisement. Wenn der Modus advertise ARP or Bothist, wird auch eine benutzerdefinierte Ressource des Typs 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
Erstellen eines BGP-Peers für Ihren Kubernetes-Cluster
Erstellen Sie aus der Ferne einen BGP-Peer für Ihren Kubernetes-Cluster, indem Sie den Befehl az k8s-runtime bgp-peer create command. Beachten Sie, dass der BGP-Peer für alle Load Balancer effektiv ist, die den Modus BGP oder Both ankündigen. Das Erstellen von BGP-Peers ist obligatorisch, wenn Sie den MetalLB Load Balancer im Modus BGP oder Both 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 |
A Nummer des autonomen Systems, das vom entfernten Ende der Sitzung erwartet wird. |
$peerIP |
E-Mail-Adresse, die beim Aufbau 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