通过在 主管 上配置可路由的命名空间网络并将 antrea-nsx-routed
指定为集群的 CNI,可以创建具有可路由 Pod 网络的 TanzuKubernetesCluster。
关于可路由 Pod 网络
使用 antrea
或 calico
CNI 插件置备 Tanzu Kubernetes 集群时,系统会创建默认 Pod 网络 192.168.0.0/16
。此子网是专用地址空间,仅独属于集群,不能在网络上路由。
TKG v1alpha3 API 通过 antrea-nsx-routed
CNI 插件支持可路由 Pod 网络。此网络接口是一个自定义 Antrea 插件,配置为对 TKG 集群支持可路由 Pod 网络。在集群规范中,Pod CIDR 块字段必须明确为空,以便 IP 地址管理 (IPAM) 由 主管 处理。请参阅下面的示例。
- 允许同一 vSphere 命名空间 中的 TKG 集群 Pod 与 vSphere Pod 之间的流量。
- 丢弃不同 vSphere 命名空间 中的 TKG 集群 Pod 和 vSphere Pod 之间的流量。
- 主管 控制平面可以访问 TKG 集群 Pod。
- TKG 集群 Pod 可以访问外部网络。
- 外部网络无法访问 TKG 集群 Pod。集群节点上的分布式防火墙 (DFW) 隔离规则将丢弃流量。
创建可路由 Pod 网络:主管 配置
- 创建新的 vSphere 命名空间。
- 选中复选框选项以替代主管网络设置。
有关指导,请参见 覆盖 vSphere 命名空间 的工作负载网络设置。
- 按如下方式配置可路由 Pod 网络。
字段 描述 NAT 模式 取消选择此选项可禁用网络地址转换 (NAT),因为您使用的是可路由子网。 命名空间网络 CIDR 命名空间网络 CIDR 是作为 vSphere 命名空间的 IP 池运行的子网。命名空间子网前缀描述从该 IP 池中分出的任何后续 CIDR 块的大小。
在此字段中填充一个格式为 IP 地址/位(例如 10.0.0.6/16)的可路由 IP 子网。NCP 将从为网络指定的 IP 段创建一个或多个 IP 池。
您至少应指定 /23 子网大小。例如,如果指定子网前缀为 /28 的 /23 可路由子网,您将获得 32 个子网,这对 6 节点集群来说应该足够了。前缀为 /28 的 /24 子网将仅获得 2 个子网,这还不够。
命名空间子网前缀 命名空间子网前缀描述从命名空间网络 IP 池中分出的任何后续 CIDR 块的大小。
例如,以 /28 格式指定子网前缀。
- 单击创建以创建可路由 Pod 网络。
创建可路由 Pod 网络:TKG 集群配置
以下示例 YAML 说明了如何为集群配置可路由 Pod 网络。
集群规范将 antrea-nsx-routed
声明为 CNI 以启用可路由 Pod 网络。如果指定了 antrea-nsx-routed
,在不使用 NSX-T 网络的情况下,集群置备将失败。
antrea-nsx-routed
时,
pods.cidrBlock
字段必须为空。
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkc-routable-pods namespace: tkg-cluster-ns spec: topology: controlPlane: replicas: 3 vmClass: guaranteed-medium storageClass: tkg-storage-policy tkr: reference: name: v1.25.7---vmware.3-fips.1-tkg.1 nodePools: - name: worker-nodepool-a1 replicas: 3 vmClass: guaranteed-large storageClass: tkg-storage-policy tkr: reference: name: v1.25.7---vmware.3-fips.1-tkg.1 settings: storage: defaultClass: tkg-storage-policy network: #antrea-nsx-routed is the required CNI cni: name: antrea-nsx-routed services: cidrBlocks: ["10.97.0.0/24"] #pods.cidrBlocks must be null (empty) pods: cidrBlocks: serviceDomain: cluster.local