Sie können die v1beta1-API verwenden, um ein Cluster-Netzwerk mit routingfähigen Pods zu erstellen. Dazu überschreiben Sie den Standardcluster mit benutzerdefinierten Konfigurationen für AntreaConfig und VSphereCPIConfig.

Informationen zu routingfähigen Pods-Netzwerken mithilfe der v1beta1-API

Die folgende Beispiel-YAML veranschaulicht, wie Sie mit der v1beta1-API einen Cluster mit der aktivierten Antrea RoutablePod-Funktion bereitstellen. Dieses Beispiel basiert auf dem v1beta1-Beispiel: Standardcluster.

Um die Routing-Pod-Funktion zu aktivieren, benötigt der Cluster AntreaConfig und VSphereCPIConfig mit einer speziellen Konfiguration.

Der AntreaConfig muss trafficEncapMode: noEncap und noSNAT: true festlegen.

VSphereCPIConfig muss antreaNSXPodRoutingEnabled: true, mode: vsphereParavirtualCPI und festlegen.
tlsCipherSuites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

Der Name der AntreaConfig muss genau als <cluster-name>-antrea-package formatiert werden. Der Name der VSphereCPIConfig muss genau als <cluster-name>-vsphere-cpi-package formatiert werden.

Erstellen Sie die Konfigurationsdateien, erstellen Sie das Clusterspezifikationsobjekt, das auf die Konfigurationsdateien verweist. Während der Clustererstellung werden die Konfigurationsdateien verwendet und um den Cluster bereitzustellen und die Standardkonfiguration zu überschreiben.

Erstellen eines routingfähigen Pod-Netzwerks: Supervisor-Konfiguration

Zum Erstellen eines routingfähigen Pod-Netzwerks ist eine Konfiguration auf dem Supervisor und im TKG-Cluster erforderlich.
Hinweis: Supervisor muss mit NSX konfiguriert werden, um routingfähige Pods-Netzwerke zu verwenden. Sie können keine routingfähigen Pods mit dem VDS-Netzwerk verwenden.
So konfigurieren Sie ein routingfähiges Pod-Netzwerk auf Supervisor:
  1. Erstellen Sie einen neuen vSphere-Namespace.

    Weitere Informationen finden Sie unter Erstellen eines vSphere-Namespace für das Hosting von TKG-Dienst-Clustern.

  2. Aktivieren Sie das Kontrollkästchen Supervisor-Netzwerkeinstellungen außer Kraft setzen.

    Weitere Informationen finden Sie unter Überschreiben der Einstellungen für das Arbeitslastennetzwerk für einen vSphere-Namespace.

  3. Konfigurieren Sie das routingfähige Pod-Netzwerk wie folgt.
    Bereich Beschreibung
    NAT-Modus Deaktivieren Sie diese Option, um die Netzwerkadressübersetzung (Network Address Translation, NAT) zu deaktivieren.
    Namespace-Netzwerk

    Befüllen Sie dieses Feld mit einem routingfähigen IP-Subnetz im Format „IP-Adresse/Bit“ (z. B. 10.0.0.6/16).

    NCP erstellt einen oder mehrere IP-Pools aus den für das Netzwerk angegebenen IP-Blöcken.

    Sie sollten mindestens eine /23-Subnetzgröße angeben. Wenn Sie beispielsweise ein routingfähiges /23-Subnetz mit einem /28-Subnetzpräfix angeben, erhalten Sie 32 Subnetze, die für einen Cluster mit 6 Knoten ausreichen sollten. Ein /24-Subnetz mit einem /28-Präfix ergibt nur 2 Subnetze, die nicht ausreichen.

    Achtung: Stellen Sie sicher, dass sich das von Ihnen hinzugefügte routingfähige IP-Netzwerk nicht mit dem CIDR der Dienste überschneidet, der die IP-Adressen für Clusterknoten zuweist. Sie können den CIDR der Dienste unter Supervisor > Konfigurieren > Netzwerk > Arbeitslastnetzwerk überprüfen.
    Namespace-Subnetzpräfix

    Geben Sie beispielsweise ein Subnetzpräfix im Format „/28“ an.

    Das Subnetzpräfix wird verwendet, um das Pod-Subnetz für jeden Knoten aus dem Namespace-Netzwerk zu entfernen.

  4. Klicken Sie auf Erstellen, um ein Netzwerk routingfähiger Pods zu erstellen.

Erstellen eines routingfähigen Pod-Netzwerks: TKG-Clusterkonfiguration

Die folgende Beispiel-YAML zeigt, wie ein v1beta1-Cluster mit einem Netzwerk routingfähiger Pods konfiguriert wird.

Wenn Sie im folgenden Beispiel gezeigt haben, müssen Sie den Abschnitt spec.clusterNetwork.pod aus der Clusterspezifikation entfernen, da die Pod-IP-Adressen von cloud-provider-vsphere zugeteilt werden.
Hinweis: Das Beispiel wird als einzelne YAML-Datei bereitgestellt und kann aber in einzelne Dateien aufgeteilt werden. Wenn Sie dies tun, müssen Sie sie in der folgenden Reihenfolge erstellen: zuerst die benutzerdefinierte Ressource AntreaConfig, dann die benutzerdefinierte Ressource VSphereCPIConfig und danach den Cluster target-cluster.
---
apiVersion: cni.tanzu.vmware.com/v1alpha1
kind: AntreaConfig
metadata:
 name: target-cluster-antrea-package
spec:
 antrea:
   config:
     defaultMTU: ""
     disableUdpTunnelOffload: false
     featureGates:
       AntreaPolicy: true
       AntreaProxy: true
       AntreaTraceflow: true
       Egress: false
       EndpointSlice: true
       FlowExporter: false
       NetworkPolicyStats: false
       NodePortLocal: false
     noSNAT: true
     tlsCipherSuites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384
     trafficEncapMode: noEncap
---
apiVersion: cpi.tanzu.vmware.com/v1alpha1
kind: VSphereCPIConfig
metadata:
 name: target-cluster-vsphere-cpi-package
spec:
 vsphereCPI:
   antreaNSXPodRoutingEnabled: true
   insecure: false
   mode: vsphereParavirtualCPI
   tlsCipherSuites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
 name: target-cluster
spec:
 clusterNetwork:
   services:
     cidrBlocks: ["198.51.100.0/12"]
   serviceDomain: "cluster.local"
 topology:
   class: tanzukubernetescluster
   version: v1.25.7---vmware.3-fips.1-tkg.1
   controlPlane:
     replicas: 3
   workers:
     machineDeployments:
       - class: node-pool
         name: node-pool-1
         replicas: 3
   variables:
     - name: vmClass
       value: guaranteed-medium
     - name: storageClass
       value: tkg2-storage-policy