请参阅示例 YAML,使用 v1alpha3 API 置备具有自定义网络设置的 TanzuKubernetesCluster。
v1alpha3 示例:具有自定义网络设置的 TKC
按如下方式自定义网络。有关详细信息,请参阅
v1alpha3 API 规范。
- 使用 Calico CNI,而不使用默认的 Antrea
- 对 Pod 和服务使用非默认子网
- 声明代理服务器和 TLS 证书
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkc-custom-network namespace: tkg2-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 replicas: 3 vmClass: guaranteed-medium storageClass: tkg-storage-policy tkr: reference: name: v1.25.7---vmware.3-fips.1-tkg.1 volumes: - name: containerd mountPath: /var/lib/containerd capacity: storage: 50Gi - name: kubelet mountPath: /var/lib/kubelet capacity: storage: 50Gi settings: storage: defaultClass: tkg-storage-policy network: cni: name: calico services: cidrBlocks: ["172.16.0.0/16"] pods: cidrBlocks: ["192.168.0.0/16"] serviceDomain: cluster.local proxy: httpProxy: http://<user>:<pwd>@<ip>:<port> httpsProxy: http://<user>:<pwd>@<ip>:<port> noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20] trust: additionalTrustedCAs: - name: CompanyInternalCA-1 data: LS0tLS1C...LS0tCg== - name: CompanyInternalCA-2 data: MTLtMT1C...MT0tPg==
自定义 TKC Pod 网络的注意事项
集群规范设置 spec.settings.network.pods.cidrBlocks
默认为 192.168.0.0/16。
如果自定义,则最小 Pod CIDR 块大小为 /24。但是,要谨慎地将 pods.cidrBlocks
子网掩码限制在 /16 以上。
TKG 为每个集群节点分配一个从 pods.cidrBlocks
获得的 /24 子网。此分配由 Kubernetes 控制器管理器 > NodeIPAMController 参数(名为 NodeCIDRMaskSize)决定,此参数用于设置集群中节点 CIDR 的子网掩码大小。对于 IPv4,默认节点子网掩码为 /24。
由于集群中的每个节点从 pods.cidrBlocks
获取一个 /24 子网,因此,如果使用的子网掩码大小对所置备集群的限制性太强,则可能会耗尽节点 IP 地址。
以下节点限制适用于使用 Antrea 或 Calico CNI 置备的 Tanzu Kubernetes 集群。
/16 == 最多 150 个节点(根据 ConfigMax)
/17 == 最多 128 个节点
/18 == 最多 64 个节点
/19 == 最多 32 个节点
/20 == 最多 16 个节点
/21 == 最多 8 个节点
/22 == 最多 4 个节点
/23 == 最多 2 个节点
/24 == 最多 1 个节点