您可以使用 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 命名空間

    請參閱建立用於主控主管上 TKG 叢集的 vSphere 命名空間

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

    請參閱覆寫 vSphere 命名空間的主管網路設定以取得指引。

  3. 取消選取 NAT 模式
  4. 使用可路由子網路填入命名空間網路。NCP 將從為網路指定的 IP 區塊建立一或多個 IP 集區。
  5. 確保您新增的可路由命名空間網路與為叢集節點配置 IP 位址的服務 CIDR 不重疊。

建立可路由網繭網路: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