您可以使用 v1beta1 API 创建具有可路由 Pod 网络的集群。为此,可以使用 AntreaConfig
和 VSphereCPIConfig
的自定义配置覆盖默认集群。
关于使用 v1beta1 API 实现可路由 Pod 网络
以下示例 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
。
创建配置文件后,便可以创建引用配置文件的集群规范对象。在创建集群期间,将使用配置文件置备集群并覆盖默认配置。
创建可路由 Pod 网络:主管 配置
- 创建新的 vSphere 命名空间。
- 选中复选框选项以替代主管网络设置。
有关指导,请参见 覆盖 vSphere 命名空间 的工作负载网络设置。
- 按如下方式配置可路由 Pod 网络。
字段 描述 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 格式指定子网前缀。
子网前缀用于为命名空间网络中的每个节点划分 Pod 子网。
- 单击创建以创建可路由 Pod 网络。
创建可路由 Pod 网络:TKG 集群配置
以下示例 YAML 说明了如何配置具有可路由 Pod 网络的 v1beta1 集群。
spec.clusterNetwork.pod
部分,因为 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