Es gibt zwei Methoden zum Konfigurieren bestimmter Netzwerkressourcen für NCP. In diesem Abschnitt wird die Konfiguration von Ressourcen im Richtlinienmodus beschrieben.

In der NCP-Konfigurationsdatei ncp.ini müssen Sie NSX-Ressourcen mit den jeweiligen Ressourcen-IDs angeben. In der Regel sind Name und ID einer Ressource identisch. Um wirklich sicherzugehen, klicken Sie auf der NSX Manager-Webschnittstelle auf das 3-Punkt-Symbol, das Optionen für eine Ressource anzeigt, und wählen Sie Pfad in die Zwischenablage kopieren aus. Fügen Sie den Pfad in einer Anwendung wie Notepad ein. Der letzte Teil des Pfads ist die Ressourcen-ID.

Gateways und Segment

  1. Erstellen Sie ein Segment für die Kubernetes-Knoten, z. B. Segment1.
  2. Erstellen Sie ein Tier-0-Gateway, z. B. T0GW1. Legen Sie die Option top_tier_router im Abschnitt [nsx_v3] der ncp.ini mit der ID des Gateways fest, wenn Sie über keine gemeinsam genutzte Tier-1-Topologie verfügen. Weitere Informationen zum Konfigurieren einer gemeinsam genutzten Tier-1-Topologie finden Sie unten. Legen Sie den HA-Modus auf „Aktiv-Standby“ fest, wenn Sie NAT-Regeln auf diesem Gateway konfigurieren möchten. Andernfalls legen Sie ihn auf „aktiv-aktiv“ fest. Aktivieren Sie Route Redistribution. Konfigurieren Sie dieses Gateway auch für den Zugriff auf das externe Netzwerk.
  3. Erstellen Sie ein Tier-1-Gateway, z. B. T1GW1. Verbinden Sie dieses Gateway mit dem Tier-0-Gateway.
  4. Konfigurieren Sie die Router-Ankündigung für T1GW1. Mindestens NSX-verbundene und NAT-Routen müssen aktiviert sein.
  5. Verbinden Sie T1GW1 mit Segment1. Stellen Sie sicher, dass die IP-Adresse des Gateway-Ports nicht mit den IP-Adressen der Kubernetes-Knoten in Konflikt steht.
  6. Stellen Sie für jede Knoten-VM sicher, dass die vNIC für den Container-Datenverkehr an den logischen Switch angehängt ist, der automatisch erstellt wird. Sie finden sie auf der Registerkarte Netzwerk mit demselben Namen wie das Segment, also Segment1.
NCP muss die VIF-ID der vNIC kennen. Sie können Segment1-Ports anzeigen, die automatisch erstellt werden, indem Sie „Netzwerk“ > „Segmente“ öffnen. Diese Ports können mit Ausnahme ihrer Tag-Eigenschaft nicht bearbeitet werden. Diese Ports müssen die folgenden Tags aufweisen: Geben Sie bei einem Tag den Namen des Knotens an. Für das andere Tag geben Sie den Namen des Clusters an. Geben Sie für den Geltungsbereich den entsprechenden Wert wie unten angegeben an.
Tag Geltungsbereich
Knotenname ncp/node_name
Clustername ncp/cluster
Diese Tags werden automatisch an die entsprechenden Ports des logischen Switches weitergegeben. Wenn der Knotenname geändert wird, müssen Sie das Tag aktualisieren. Um den Knotennamen abzurufen, können Sie den folgenden Befehl ausführen:
kubectl get nodes

Wenn Sie den Kubernetes-Cluster erweitern möchten, während NCP läuft, z. B. um weitere Knoten zum Cluster hinzufügen, müssen Sie die Tags zu den entsprechenden Switch-Ports hinzufügen, bevor Sie „kubeadm join“ ausführen. Wenn Sie vergessen haben, die Tags vor dem Ausführen von „kubeadm join“ hinzuzufügen, haben die neuen Knoten keine Konnektivität. In diesem Fall müssen Sie die Tags hinzufügen und NCP neu starten, um das Problem zu beheben.

Um den Switch-Port für eine Knoten-VM zu identifizieren, können Sie den folgenden API-Aufruf durchführen:
/api/v1/fabric/virtual-machines
Suchen Sie in der Antwort nach der Knoten-VM und rufen Sie den Wert für das Attribut „external_id“ ab. Sie können auch den folgenden API-Aufruf durchführen:
/api/v1/search -G --data-urlencode "query=(resource_type:VirtualMachine AND display_name:<node_vm_name>)"
Wenn Sie über die externe ID verfügen, können Sie sie verwenden, um die VIFs für die VM mit der folgenden API abzurufen. Beachten Sie, dass VIFs erst nach dem Start der VM ausgefüllt werden.
/api/v1/search -G --data-urlencode \
"query=(resource_type:VirtualNetworkInterface AND external_id:<node_vm_ext_id> AND \
_exists_:lport_attachment_id)"

Das Attribut lport_attachment_id ist die VIF-ID für die Knoten-VM. Sie können den logischen Port für diese VIF dann suchen und die erforderlichen Tags hinzufügen.

IP-Blöcke für Kubernetes-Pods

Navigieren Sie zu Netzwerk > IP-Adressverwaltung > IP-Adresspools > IP-Adressblöcke, um mindestens einen IP-Blöcke zu erstellen. Geben Sie den IP-Block im CIDR-Format an. Legen Sie die Option container_ip_blocks im Abschnitt [nsx_v3] der ncp.ini auf die UUIDs der IP-Blöcke fest. Wenn Sie möchten, dass NCP automatisch IP-Blöcke erstellt, können Sie die Option container_ip_blocks mit einer kommagetrennten Liste von Adressen im CIDR-Format festlegen.

Standardmäßig verwenden Projekte die in container_ip_blocks angegebenen IP-Blöcke. Sie können IP-Blöcke speziell für Nicht-SNAT-Namespaces (für Kubernetes) oder Cluster (für TAS) erstellen, indem Sie die Option no_snat_ip_blocks im Abschnitt [nsx_v3] der ncp.ini festlegen.

Wenn Sie Nicht-SNAT-IP-Blöcke erstellen, während NCP ausgeführt wird, müssen Sie NCP neu starten. Andernfalls verwendet NCP weiterhin die freigegebenen IP-Blöcke, bis sie erschöpft sind.

Wenn Sie einen IP-Block erstellen, darf das Präfix nicht größer als der Wert der Option subnet_prefix in der NCP-Konfigurationsdatei ncp.ini sein. Die Standardeinstellung ist 24.

Sie dürfen den IP-Block nicht ändern, wenn NCP damit zugeteilte IP-Adressen gestartet hat. Wenn Sie einen anderen Block verwenden möchten, stellen Sie sicher, dass NCP keine Adressen aus dem Block zugeteilt sind.

Externe IP-Pools

Ein Pool an externen IPs wird für die Zuweisung von IP-Adressen, die für die Übersetzung von Pod-IPs unter Verwendung von SNAT-Regeln genutzt werden, und für die Freilegung von Ingress-Controllern sowie Diensten des Typs Lastausgleich unter Verwendung von SNAT/DNAT-Regeln genutzt, genau wie Openstack-Floating-IPs. Diese IP-Adressen werden auch als „externe IP-Adressen“ bezeichnet.

Navigieren Sie zu Netzwerk > IP-Adressverwaltung > IP-Adresspools, um einen IP-Pool zu erstellen. Legen Sie die Option external_ip_pools im Abschnitt [nsx_v3] der ncp.ini auf die UUIDs der IP-Pools fest. Wenn Sie möchten, dass NCP automatisch IP-Pools erstellt, können Sie die Option external_ip_pools mit einer kommagetrennten Liste von Adressen im CIDR-Format oder IP-Bereichen festlegen.

Mehrere Kubernetes-Cluster verwenden denselben externen IP-Pool. Jede NCP-Instanz verwendet einen Teil dieses Pools für den Kubernetes-Cluster, den sie verwaltet. Standardmäßig wird dasselbe Subnetzpräfix für Pod-Subnetze verwendet. Wen Sie eine andere Subnetzgröße verwenden möchten, aktualisieren Sie die external_subnet_prefix-Option im [nsx_v3]-Abschnitt in ncp.ini.

Sie können zu einem anderen IP-Pool wechseln, indem Sie die Konfigurationsdatei ändern und NCP neu starten.

Sie dürfen den IP-Pool nicht ändern, wenn NCP damit zugeteilte IP-Adressen gestartet hat. Wenn Sie einen anderen Pool verwenden möchten, stellen Sie sicher, dass NCP keine Adressen aus dem Pool zugeteilt sind.

Gemeinsam genutzte Tier-1-Topologie

Um eine gemeinsam genutzte Tier-1-Topologie zu aktivieren, nehmen Sie folgende Konfigurationen vor:
  • Legen Sie die Option top_tier_router auf die ID eines Tier-1-Gateways fest. Verbinden Sie das Tier-1-Gateway mit einem Tier-0-Gateway für externe Verbindungen.
  • Wenn SNAT für Pod-Datenverkehr aktiviert ist, ändern Sie den Uplink des Segments für Kubernetes-Knoten auf dasselbe Tier-0- oder Tier-1-Gateway, das unter top_tier_router festgelegt ist.
  • Legen Sie die Option single_tier_topology auf True fest. Der Standardwert lautet False.
  • Wenn NCP den Top-Tier-Router automatisch als Tier-1-Gateway konfigurieren soll, heben Sie die Option top_tier_router auf und legen Sie die Option tier0_gateway fest. NCP erstellt ein Tier-1-Gateway und einen Uplink zum Tier-0-Gateway, das in der Option tier0_gateway angegeben ist.

Hinweis: Nachdem Sie die Option top_tier_router festgelegt und einige Namespaces erstellt haben, können Sie top_tier_router nicht auf einen anderen Wert aktualisieren und NCP nicht neu starten. Dieser Vorgang wird nicht unterstützt.