Es gibt zwei Methoden zum Konfigurieren bestimmter Netzwerkressourcen für NCP. In diesem Abschnitt wird die Verwendungsmethode mit der Registerkarte Netzwerk und Sicherheit – Erweitert 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.

Logische Router und logische Switches

  1. Erstellen Sie einen logischen Switch für die Kubernetes-Knoten, z. B. LS1.
  2. Erstellen Sie einen logischen Tier-0-Router, z. B. T0LR1. Legen Sie die Option tier0_router im Abschnitt [nsx_v3] der ncp.ini mit der ID des logischen Routers 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 logischen Router konfigurieren möchten. Andernfalls legen Sie ihn auf „aktiv-aktiv“ fest. Aktivieren Sie Route Redistribution. Konfigurieren Sie diesen Router auch für den Zugriff auf das externe Netzwerk.
  3. Erstellen Sie einen logischen Tier-1-Router, z. B. T1LR1. Verbinden Sie diesen logischen Router mit dem logischen Tier-0-Router.
  4. Konfigurieren Sie die Router-Ankündigung für T1LR1. Mindestens NSX-verbundene und NAT-Routen müssen aktiviert sein.
  5. Verbinden Sie T1LR1 mit LS1. Stellen Sie sicher, dass die Port-IP-Adresse des logischen Routers 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 der logische Switch, also LS1.
NCP muss die VIF-ID der vNIC kennen. Die entsprechenden Ports der logischen Switches müssen die folgenden Tags aufweisen:
scope: 'ncp/node_name', value: '<node_name>'
scope: 'ncp/cluster', value: '<cluster_name>'

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 und Sicherheit – Erweitert > IPAM, 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.

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 und Sicherheit – Erweitert > Bestandsliste > Gruppen > IP-Pools, 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.

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 logischen Tier-0-Routers oder logischen Tier-1-Routers fest. Wenn es sich um einen logischen Tier-1-Router handelt, müssen Sie ihn für externe Verbindungen mit einem logischen Tier-0-Router verbinden. Diese Option ersetzt die Option tier0_router.
  • Wenn SNAT für Pod-Datenverkehr aktiviert ist, trennen Sie T1LR1 von LS1 (der logische Switch für die Kubernetes-Knoten) und verbinden Sie den Tier-0- oder Tier-1-Router, der unter top_tier_router auf LS1 festgelegt ist.
  • Legen Sie die Option single_tier_topology auf True fest. Der Standardwert lautet False.

(Optional) Markierte Firewallabschnitte

Damit der Administrator Firewallregeln erstellen kann und diese die von NCP erstellten, auf Netzwerkrichtlinien basierenden Firewallabschnitte nicht beeinträchtigen, öffnen Sie Netzwerk und Sicherheit – Erweitert > Sicherheit > Verteilte Firewall > Allgemein und erstellen Sie zwei Firewallabschnitte.

Geben Sie Firewall-Markierungsabschnitte an, indem Sie die Optionen bottom_firewall_section_marker und top_firewall_section_marker im Abschnitt [nsx_v3] der Datei ncp.ini festlegen.

Der untere Firewallabschnitt muss sich unterhalb des oberen Firewallabschnitts befinden. Wenn diese Firewallabschnitte erstellt sind, werden alle von NCP zur Isolierung erstellten Firewallabschnitte oberhalb des unteren Firewallabschnitts und alle von NCP für Richtlinien erstellten Firewallabschnitte unterhalb des oberen Firewallabschnitts erstellt. Wenn diese Markierungsabschnitte nicht erstellt werden, werden alle Isolierungsregeln unten und alle Richtlinienabschnitte oben erstellt. Mehrere markierte Firewallabschnitte mit demselben Wert pro Cluster werden nicht unterstützt und führen zu einem Fehler.