Bereitstellen der Erweiterung für MetalLB für Azure Arc-aktivierte Kubernetes-Cluster mit Azure CLI
Gilt für: Azure Local, Version 23H2
Der Hauptzweck eines Lastenausgleichs ist die Verteilung des Datenverkehrs über mehrere Knoten in einem Kubernetes-Cluster. Dies kann dazu beitragen, Ausfallzeiten zu vermeiden und die Gesamtleistung von Anwendungen zu verbessern. AKS, die von Azure Arc aktiviert sind, unterstützt das Erstellen einer MetalLB-Lastenausgleichsinstanz auf Ihrem Kubernetes-Cluster mithilfe einer Arc-Erweiterung.
Voraussetzungen
- Ein Azure Arc-aktivierter Kubernetes-Cluster mit mindestens einem Linux-Knoten. Sie können einen Kubernetes-Cluster auf Azure Local, Version 23H2, mit der Azure CLI oder dem Azure-Portal erstellen. AKS auf Azure Local, Version 23H2-Cluster, sind standardmäßig Arc aktiviert.
- Stellen Sie sicher, dass Sie über genügend IP-Adressen für das Lastenausgleichsmodul verfügen. Stellen Sie für AKS auf Azure Local, Version 23H2, sicher, dass die für das Lastenausgleichsmodul reservierten IP-Adressen nicht mit den IP-Adressen in logischen Arc-Netzwerken und Steuerebenen-IPs in Konflikt geraten. Weitere Informationen zur IP-Adressplanung und -vernetzung in Kubernetes finden Sie unter Netzwerkanforderungen für Kubernetes und die IP-Adressplanung für Kubernetes.
- In diesem Anleitungshandbuch wird davon ausgegangen, dass Sie verstehen, wie Metal LB funktioniert. Weitere Informationen finden Sie in der Übersicht für 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
Arc-Erweiterung für MetalLB aktivieren
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 mithilfe des az k8s-runtime load-balancer enable
Befehls
Um die Arc-Erweiterung für MetalLB mit dem folgenden Befehl zu aktivieren, benötigen Sie die Graph-Berechtigung Application.Read.All. Sie können überprüfen, ob Sie über diese Berechtigung verfügen, 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-Mandantenadministrator, um die Rolle zu erhalten Application.Read.All
.
Wenn Sie über die Berechtigung verfügen, können Sie den az k8s-runtime load-balancer enable
Befehl 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 mithilfe des az k8s-extension add
Befehls
Wenn Sie nicht über die Graph-Berechtigung "Application.Read.All" verfügen, können Sie die folgenden Schritte ausführen:
- Registrieren Sie dies
Microsoft.KubernetesRuntime RP
, wenn Sie dies noch nicht getan haben. Beachten Sie, dass Sie sich nur einmal pro Azure-Abonnement registrieren müssen. Sie können Ressourcenanbieter auch mithilfe des Azure-Portal registrieren. Weitere Informationen zum Registrieren von Ressourcenanbietern und erforderlichen Berechtigungen finden Sie unter Registrieren eines Ressourcenanbieters.
az provider register -n Microsoft.KubernetesRuntime
Sie können überprüfen, ob der Ressourcenanbieter erfolgreich registriert wurde, indem Sie den folgenden Befehl ausführen.
az provider show -n Microsoft.KubernetesRuntime -o table
Erwartete Ausgabe:
Namespace RegistrationPolicy RegistrationState
--------------------------- -------------------- -------------------
Microsoft.KubernetesRuntime RegistrationRequired Registered
- Um die Arc-Erweiterung für MetalLB zu installieren, rufen Sie die AppID des MetalLB-Erweiterungsressourcenanbieters ab, und führen Sie dann den Befehl zum Erstellen der Erweiterung aus. Sie müssen die folgenden Befehle einmal pro Arc Kubernetes-Cluster ausführen.
Rufen Sie die Anwendungs-ID der Arc-Erweiterung ab, indem Sie az ad sp list ausführen. Um den folgenden Befehl auszuführen, müssen Sie Mitglied user
Ihres Azure-Mandanten sein. Weitere Informationen zur Benutzer- und Gastmitgliedschaft finden Sie unter Standardbenutzerberechtigungen in der Microsoft Entra-ID.
$objID = az ad sp list --filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" --query "[].id" --output tsv
Sobald Sie die $objID haben, können Sie die MetalLB Arc-Erweiterung auf Ihrem Kubernetes-Cluster installieren. Um den folgenden Befehl auszuführen, müssen Sie über die Rolle "Kubernetes-Erweiterungsmitwirkender" verfügen.
az k8s-extension create --cluster-name $clusterName -g $rgName --cluster-type connectedClusters --extension-type microsoft.arcnetworking --config k8sRuntimeFpaObjectId=$objID -n arcnetworking
Bereitstellen des MetalLB-Lastenausgleichs auf 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. Mit diesem Befehl wird eine benutzerdefinierte Ressource vom Typ IPAddressPool
im Namespace kube-system
erstellt.
Konfigurieren Sie die folgenden Variablen, bevor Sie fortfahren:
Parameter | Beschreibung |
---|---|
$lbName |
Der Name der MetalLB-Lastenausgleichsinstanz. |
$advertiseMode |
Der Modus für ihr MetalLB-Lastenausgleichsmodul. Unterstützte Werte sind ARP , oder BGP Both . |
$ipRange |
Der IP-Bereich für den MetalLB-Lastenausgleich im ARP oder Both Modus. |
Wenn der Werbemodus ist BGP
oder Both
, erstellt er auch eine benutzerdefinierte Ressource der Art BGPAdvertisement
. Wenn der Werbemodus vorhanden ist ARP
oder Both
, erstellt er auch eine benutzerdefinierte Ressource vom Typ 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 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 Lastenausgleichsgeräte wirksam ist, die über einen Modus verfügen BGP
oder Both
den Modus ankündigen. Das Erstellen von BGP-Peers ist obligatorisch, wenn Sie das MetalLB-Lastenausgleichsmodul im BGP
oder Both
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 wird. |
$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