通过使用特定设置配置 Antrea CNI 软件包并在 主管 上配置可路由命名空间网络,可以创建具有可路由 Pod 网络的集群。
使用 v1beta1 API 实现可路由 Pod 网络
v1beta1 API 通过 Antrea CNI 支持可路由 Pod 网络。此功能与使用 v1alpha3 API 时的工作方式类似。有关说明,请参见v1alpha3 示例:具有可路由 Pod 网络的 TKC。
应遵循相同的要求:必须对 主管 使用 NSX 网络连接,并且必须为 vSphere 命名空间 配置可路由的命名空间网络。有关指导,请参见 替代 主管 网络设置。
尽管功能相同,但使用 v1beta1 API 实现可路由 Pod 网络的方法与使用 v1alpha3 API 方法不同。通过使用 v1beta1 API,您可以自定义 CNI,与集群 Calico 示例中所示的方法类似。然而,在这种情况下,您仍然会使用 Antrea CNI 软件包,但会提供特殊配置说明,以便使用可路由的 Pod 网络创建 Antrea CNI 软件包。
为此,您需要使用特定配置创建 VSphereCPIConfig 和 AntreaConfig。VSphereCPIConfig 会将 antreaNSXPodRoutingEnabled
标记设置为 true。同样,AntreaConfig 也会启用特定标记。tkg-system
命名空间中有一些示例 VSphereCPIConfig 和 AntreaConfig 配置,以 -routable
为后缀。
在为 Antrea CNI 软件包配置可路由 Pod 网络后,与 v1alpha3 方法类似,可将集群规范中的 pods.cidrBlocks
字段留空。例如:
apiVersion: cpi.tanzu.vmware.com/v1alpha1 kind: VSphereCPIConfig metadata: name: cluster-4 namespace: tkg spec: vsphereCPI: antreaNSXPodRoutingEnabled: true insecure: false mode: vsphereParavirtualCPI --- apiVersion: cni.tanzu.vmware.com/v1alpha1 kind: AntreaConfig metadata: name: cluster-4 namespace: tkg spec: antrea: config: featureGates: AntreaProxy: true EndpointSlice: true AntreaPolicy: true FlowExporter: true Egress: true NodePortLocal: true AntreaTraceflow: true NetworkPolicyStats: true noSNAT: true trafficEncapMode: noEncap --- apiVersion: run.tanzu.vmware.com/v1alpha3 kind: ClusterBootstrap metadata: annotations: tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.23.8---vmware.2-tkg.2-zshippable name: cluster-4 spec: cni: refName: antrea.tanzu.vmware.com.1.5.3+tkg.2-zshippable valuesFrom: providerRef: apiGroup: cni.tanzu.vmware.com kind: AntreaConfig name: cluster-4 --- apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: cluster-4 namespace: tkg spec: clusterNetwork: services: cidrBlocks: ["198.52.100.0/12"] pods: cidrBlocks: [] serviceDomain: "cluster.local" topology: class: tanzukubernetescluster version: v1.23.8---vmware.2-tkg.2-zshippable controlPlane: replicas: 1 metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu workers: machineDeployments: - class: node-pool name: node-pool-01 replicas: 3 metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu variables: - name: vmClass value: guaranteed-medium - name: storageClass value: tkg2-storage-policy