Freigeben über


Konfigurieren des Dienstlastenausgleichs im Azure Operator Nexus Kubernetes-Dienst

In diesem Artikel erfahren Sie, wie Sie einen Dienstlastenausgleich in einem Nexus Kubernetes-Cluster konfigurieren. Das Lastenausgleichsmodul ermöglicht externen Diensten den Zugriff auf die Im Cluster ausgeführten Dienste. Der Schwerpunkt dieses Leitfadens liegt auf den Konfigurationsaspekten und bietet Beispiele, die Ihnen helfen, den Prozess zu verstehen. Anhand dieses Leitfadens können Sie Dienstlastenausgleichsgeräte in Ihrem Nexus Kubernetes-Cluster effektiv konfigurieren.

Voraussetzungen

Bevor Sie mit dieser Anleitung fortfahren, empfiehlt es sich, Folgendes zu beachten:

  • In der Schnellstartanleitung zu Nexus Kubernetes finden Sie eine umfassende Übersicht und schritte.
  • Stellen Sie sicher, dass Sie die beschriebenen Voraussetzungen erfüllen, um eine reibungslose Implementierung des Leitfadens sicherzustellen.
  • Kenntnisse von Kubernetes-Konzepten, einschließlich Bereitstellungen und Diensten.
  • Wenden Sie sich an Ihren Netzwerkadministrator, um einen IP-Adressbereich zu erwerben, der für den IP-Pool für den Lastenausgleich verwendet werden kann.

Begrenzungen

  • Die KONFIGURATION des IP-Pools ist unveränderlich: Nach der Festlegung kann sie nicht mehr in einem Nexus Kubernetes-Cluster geändert werden.
  • IP-Poolnamen müssen mit einem Kleinbuchstaben oder einer Ziffer beginnen und mit einem Kleinbuchstaben oder einer Ziffer enden.
  • IP-Poolnamen sollten 63 Zeichen nicht überschreiten, um potenzielle Probleme oder Einschränkungen zu vermeiden.
  • IP-Adresspools sollten sich nicht mit dem vorhandenen POD CIDR-, Dienst-CIDR- oder CNI-Präfix überschneiden, um Konflikte und Netzwerkprobleme innerhalb des Clusters zu vermeiden.

Wichtig

Diese Anweisungen dienen zum Erstellen eines neuen Nexus Kubernetes-Clusters. Vermeiden Sie das Anwenden der Bicep-Vorlage auf einen vorhandenen Cluster, da die KONFIGURATION des IP-Pools unveränderlich ist. Nachdem ein Cluster mit der IP-Poolkonfiguration erstellt wurde, kann er nicht mehr geändert werden.

Konfigurationsoptionen

Bevor Sie den IP-Adresspool für den Dienstlastenausgleich konfigurieren, ist es wichtig, die verschiedenen verfügbaren Konfigurationsoptionen zu verstehen. Mit diesen Optionen können Sie das Verhalten und die Parameter des IP-Adresspools entsprechend Ihren spezifischen Anforderungen definieren.

Sehen wir uns die Konfigurationsoptionen für den IP-Adresspool an.

Erforderliche Parameter

Für die Konfiguration des IP-Adresspools ist das Vorhandensein von zwei Feldern erforderlich: addresses und name. Diese Felder sind für die Definition des IP-Adressbereichs und die Identifizierung des Pools unerlässlich.

  • Das addresses Feld gibt die Liste der IP-Adressbereiche an, die für die Zuordnung innerhalb des Pools verwendet werden können. Sie können jeden Bereich als Subnetz im CIDR-Format definieren. Vermeiden Sie die Verwendung einer einzelnen IP-Adresse, z. B. "/32" für IPv4 und "/128" für IPv6.
  • Das name Feld dient als eindeutiger Bezeichner für den IP-Adresspool. Sie hilft dabei, den Pool einer BGP-Ankündigung (Border Gateway Protocol) zuzuordnen und eine effektive Kommunikation innerhalb des Clusters zu ermöglichen.

Hinweis

Um den Kubernetes-Dienst LoadBalancer über eine Dualstapeladresse zu aktivieren, stellen Sie sicher, dass die IP-Poolkonfiguration sowohl IPv4 als auch IPv6 CIDR enthält.

Optionale Parameter

Zusätzlich zu den erforderlichen Feldern stehen auch optionale Felder zur weiteren Anpassung der KONFIGURATION des IP-Adresspools zur Verfügung.

  • Das autoAssign Feld bestimmt, ob ip-Adressen automatisch aus dem Pool zugewiesen werden. Dieses Feld ist ein string Typ mit einem Standardwert von True. Sie können sie entweder True oder False basierend auf Ihrer Einstellung festlegen.
  • Das onlyUseHostIps Feld steuert die Verwendung von IP-Adressen, die mit .0 und .255 innerhalb des Pools enden. Wenn Sie diese Option aktivieren, wird die Verwendung auf IP-Adressen zwischen .1 und .254 (einschließlich) beschränkt, mit Ausnahme der reservierten Netzwerk- und Übertragungsadressen.

Bicep-Vorlagenparameter für die Konfiguration des IP-Adresspools

Der folgende JSON-Codeausschnitt zeigt die Parameter, die zum Konfigurieren des IP-Adresspools in der Bicep-Vorlage erforderlich sind.

"ipAddressPools": {
  "value": [
    {
      "addresses": ["<IP>/<CIDR>"],
      "name": "<pool-name>",
      "autoAssign": "True",  /* "True"/"False" */
      "onlyUseHostIps": "True"  /* "True"/"False" */
    }
  ]
}

Zum Hinzufügen der IP-Poolkonfiguration zu Ihrem Cluster müssen Sie die kubernetes-deploy-parameters.json Datei aktualisieren, die Sie während der Schnellstartanleitung erstellt haben. Fügen Sie die IP-Poolkonfiguration in diese Datei gemäß ihren gewünschten Einstellungen ein.

Nachdem Sie die KONFIGURATION des IP-Pools zu Ihrer Parameterdatei hinzugefügt haben, können Sie mit der Bereitstellung der Bicep-Vorlage fortfahren. Mit dieser Aktion wird Ihr neuer Cluster mit der angegebenen KONFIGURATION des IP-Adresspools eingerichtet, sodass Sie den IP-Pool wie vorgesehen verwenden können.

Anhand dieser Anweisungen können Sie einen neuen Nexus Kubernetes-Cluster mit der gewünschten IP-Poolkonfiguration erstellen und den IP-Adresspool für Ihre Clusterdienste nutzen.

Beispielparameter

Diese Parameterdatei soll mit der Bicep-Vorlage "Schnellstarthandbuch " zum Erstellen eines Clusters mit aktiviertem BGP-Lastenausgleich verwendet werden. Sie enthält die erforderlichen Konfigurationseinstellungen zum Einrichten des Clusters mit BGP-Lastenausgleichsfunktionen. Mithilfe dieser Parameterdatei mit der Bicep-Vorlage können Sie einen Cluster mit den gewünschten BGP-Lastenausgleichsfunktionen erstellen.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "kubernetesClusterName":{
      "value": "lb-test-cluster"
    },
    "adminGroupObjectIds": {
      "value": [
        "00000000-0000-0000-0000-000000000000"
      ]
    },
    "cniNetworkId": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
    },
    "cloudServicesNetworkId": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
    },
    "extendedLocation": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
    },
    "location": {
      "value": "eastus"
    },
    "sshPublicKeys": {
      "value": [
        {
          "keyData": "ssh-rsa AAAAB..."
        },
        {
          "keyData": "ssh-rsa AAAAC..."
        }
      ]
    },
    "ipAddressPools": {
      "value": [
        {
          "addresses": ["<IP>/<CIDR>"],
          "name": "<pool-name>",
          "autoAssign": "True",
          "onlyUseHostIps": "True"
        }
      ]
    }
  }
}

Hinweis

Wenn Sie einen DualStack-Dienst erstellen möchten, stellen Sie sicher, dass der Adresspool sowohl einen IPv4 CIDR als auch einen IPv6 CIDR enthält. Dies ermöglicht die gleichzeitige Unterstützung von IPv4- und IPv6-Adressen in Ihrer Lastenausgleichskonfiguration.

Beispiel: Statische IP-Adresszuweisung für einen Dienst

Um eine statische IP-Adresse für einen Dienst zuzuweisen, können Sie die folgenden Befehle verwenden.

Erstellen einer Bereitstellung

kubectl create deployment nginx --image=nginx --port 80

Statische IP-Zuordnung (LoadBalancerIP)

kubectl expose deployment nginx \
    --name nginx-loadbalancer-pool1-static \
    --type LoadBalancer \
    --load-balancer-ip <IP from pool-1>

Ersetzen Sie diese durch <IP from pool-1> die gewünschte IP-Adresse aus dem IP-Pool.

Statische IP-Zuordnung (ExternalIP)

kubectl expose deployment nginx \
    --name nginx-clusterip-pool1-static \
    --type ClusterIP \
    --external-ip <IP from pool-1>

Ersetzen Sie diese durch <IP from pool-1> die gewünschte IP-Adresse aus dem IP-Pool.

Beispiel: IP-Adresszuweisung für einen Dienst aus einem bestimmten IP-Pool

Um eine IP-Adresse für einen Dienst aus einem bestimmten IP-Pool zuzuweisen, können Sie den folgenden Befehl verwenden.

kubectl expose deployment nginx \
    --name nginx-loadbalancer-pool2-auto \
    --type LoadBalancer \
    --overrides '{"metadata":{"annotations":{"metallb.universe.tf/address-pool":"pool-2"}}}'

Mit diesem Befehl wird dem Dienst eine IP-Adresse aus dem IP-Pool pool-2zugewiesen. Passen Sie den Poolnamen nach Bedarf an. Bevor Sie diese Beispiele ausprobieren, stellen Sie sicher, dass Sie bereits einen Nexus Kubernetes-Cluster mit zwei verschiedenen IP-Adresspools erstellt haben. Wenn Sie dies noch nicht getan haben, führen Sie die erforderlichen Schritte aus, um den Cluster zu erstellen und die IP-Pools entsprechend zu konfigurieren.

Hinweis

Bei dem Namen des IP-Adresspools wird die Groß-/Kleinschreibung beachtet. Stellen Sie sicher, dass Sie beim Angeben des Poolnamens den richtigen Fall verwenden.

Nächste Schritte

Sie können versuchen, eine Netzwerkfunktion (NF) in Ihrem Nexus Kubernetes-Cluster mithilfe des neu konfigurierten Lastenausgleichsmoduls bereitzustellen. Mit dieser Konfiguration können Sie die Lastenausgleichsfunktionen testen und beobachten, wie Datenverkehr zwischen den Instanzen Ihres NF verteilt wird.