Es gibt zwei Methoden zum Konfigurieren bestimmter Netzwerkressourcen für NCP. In diesem Abschnitt wird die Verwendungsmethode mit der Registerkarte Netzwerk in der NSX Manager-Webschnittstelle beschrieben.

In der NCP-Konfigurationsdatei ncp.ini können Sie NSX-T-Ressourcen mit den jeweiligen UUIDs oder Namen angeben.

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 und Sicherheit – Erweitert 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:
scope: 'ncp/node_name', value: '<node_name>'
scope: 'ncp/cluster', value: '<cluster_name>'

Diese Tags werden automatisch an die entsprechenden Ports des logischen Switches weitergegeben. Wenn der Knotenname geändert wird, müssen Sie das Tag aktualisieren.

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-Adressblöcke, um mindestens einen IP-Block 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. Beachten Sie, dass Sie container_ip_blocks nicht sowohl für UUIDs als auch für CIDR-Adressen festlegen können.

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 PCF) 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.

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. Beachten Sie, dass Sie external_ip_pools nicht sowohl für UUIDs als auch für CIDR-Adressen festlegen können.

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.

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-0- oder Tier-1-Gateways fest. Wenn es sich um ein Tier-1-Gateway handelt, müssen Sie es für externe Verbindungen mit einem Tier-0-Gateway verbinden.
  • 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.