您可以使用 v1beta1 API 建立具有可路由網繭網路的叢集。為此,可以使用 AntreaConfig
和 VSphereCPIConfig
的自訂組態覆寫預設叢集。
關於使用 v1beta1 API 實作可路由網繭網路
以下範例 YAML 示範了如何使用 v1beta1 API 佈建已啟用 Antrea RoutablePod 功能的叢集。此範例根據 v1beta1 範例:預設叢集而建置。
若要啟用 RoutablePod 功能,叢集需要具有特殊組態的 AntreaConfig
和 VSphereCPIConfig
。
AntreaConfig
必須設定 trafficEncapMode: noEncap
和 noSNAT: true
。
VSphereCPIConfig
必須設定
antreaNSXPodRoutingEnabled: true
、
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
AntreaConfig
的名稱格式必須為 <cluster-name>-antrea-package
。VSphereCPIConfig
的名稱格式必須為 <cluster-name>-vsphere-cpi-package
。
建立組態檔後,便可以建立參考組態檔的叢集規格物件。在建立叢集期間,將使用組態檔佈建叢集並覆寫預設組態。
建立可路由網繭網路:主管 組態
- 建立新的 vSphere 命名空間。
- 選取此核取方塊選項以覆寫主管網路設定。
請參閱覆寫 vSphere 命名空間 的工作負載網路設定以取得指引。
- 按如下所示設定可路由的網繭網路。
欄位 說明 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 形式指定子網路首碼。
子網路首碼用於從命名空間網路取得每個節點的網繭子網路。
- 按一下建立,來建立可路由網繭網路。
建立可路由網繭網路:TKG 叢集組態
下列範例 YAML 顯示如何為 v1beta1 叢集設定可路由的網繭網路。
spec.clusterNetwork.pod
部分,因為網繭 IP 位址將由 cloud-provider-vsphere 配置。
AntreaConfig
和
VSphereCPIConfig
自訂資源,然後建立 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