您可以使用 v1beta1 API 建立具有可路由網繭網路的叢集。為此,可以使用 AntreaConfigVSphereCPIConfig 的自訂組態覆寫預設叢集。

關於使用 v1beta1 API 實作可路由網繭網路

以下範例 YAML 示範了如何使用 v1beta1 API 佈建已啟用 Antrea RoutablePod 功能的叢集。此範例根據 v1beta1 範例:預設叢集而建置。

若要啟用 RoutablePod 功能,叢集需要具有特殊組態的 AntreaConfigVSphereCPIConfig

AntreaConfig 必須設定 trafficEncapMode: noEncapnoSNAT: true

VSphereCPIConfig 必須設定 antreaNSXPodRoutingEnabled: truemode: 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

AntreaConfig 的名稱格式必須為 <cluster-name>-antrea-packageVSphereCPIConfig 的名稱格式必須為 <cluster-name>-vsphere-cpi-package

建立組態檔後,便可以建立參考組態檔的叢集規格物件。在建立叢集期間,將使用組態檔佈建叢集並覆寫預設組態。

建立可路由網繭網路:主管 組態

若要建立可路由網繭網路,則需要在 主管 和 TKG 叢集上進行設定。
備註: 必須為 主管 設定 NSX,才能使用可路由網繭網路。無法將可路由網繭與 VDS 網路搭配使用。
若要在 主管 上設定可路由網繭網路,請執行以下作業:
  1. 建立新的 vSphere 命名空間

    請參閱建立 vSphere 命名空間 以託管 TKG 服務 叢集

  2. 選取此核取方塊選項以覆寫主管網路設定

    請參閱覆寫 vSphere 命名空間 的工作負載網路設定以取得指引。

  3. 按如下所示設定可路由的網繭網路。
    欄位 說明
    NAT 模式 取消選取此選項,可停用網路位址轉譯 (NAT)。
    命名空間網路

    在此欄位中填入格式為 IP 位址/位元 (例如 10.0.0.6/16) 的可路由 IP 子網路。

    NCP 將從為網路指定的 IP 區塊建立一或多個 IP 集區。

    您至少應指定 /23 子網路大小。例如,如果使用 /28 子網路首碼指定 /23 可路由子網路,您將獲得 32 個子網路,這對 6 個節點的叢集來說應該足夠。首碼為 /28 的 /24 子網路將僅獲得 2 個子網路,這還不夠。

    小心: 確保您新增的可路由 IP 子網路與為叢集節點配置 IP 位址的 服務 CIDR 不重疊。您可以在 主管 > 設定 > 網路 > 工作負載網路中查看 服務 CIDR
    命名空間子網路首碼

    例如,以 /28 形式指定子網路首碼。

    子網路首碼用於從命名空間網路取得每個節點的網繭子網路。

  4. 按一下建立,來建立可路由網繭網路。

建立可路由網繭網路:TKG 叢集組態

下列範例 YAML 顯示如何為 v1beta1 叢集設定可路由的網繭網路。

如以下範例中所示,您必須從叢集規格中移除 spec.clusterNetwork.pod 部分,因為網繭 IP 位址將由 cloud-provider-vsphere 配置。
備註: 該範例作為單一 YAML 檔案提供,但可以分成多個單獨的檔案。如果進行分割,則必須按順序進行建立:首先建立 AntreaConfigVSphereCPIConfig 自訂資源,然後建立 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