Consulte o exemplo de YAML para provisionar um TanzuKubernetesCluster usando a API v1alpha3 com configurações de rede personalizadas.
Exemplo de v1alpha3: TKC com configurações de rede personalizadas
- O Calico CNI é usado em vez do Antrea padrão
- Sub-redes não padrão para pods e serviços são usadas
- Um servidor proxy e certificados TLS são declarados
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: tkg2-storage-policy tkr: reference: name: v1.23.8---vmware.2-tkg.2-zshippable volumes: - name: etcd mountPath: /var/lib/etcd capacity: storage: 4Gi nodePools: - name: worker replicas: 3 vmClass: guaranteed-medium storageClass: tkg2-storage-policy tkr: reference: name: v1.23.8---vmware.2-tkg.2-zshippable volumes: - name: containerd mountPath: /var/lib/containerd capacity: storage: 50Gi - name: kubelet mountPath: /var/lib/kubelet capacity: storage: 50Gi settings: storage: defaultClass: tkg2-storage-policy network: cni: name: calico services: cidrBlocks: ["198.53.100.0/16"] pods: cidrBlocks: ["192.0.5.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==
Considerações para personalizar a rede de pods do TKC
A configuração de especificação de cluster spec.settings.network.pods.cidrBlocks
padrão é 192.168.0.0/16.
Se você personalizar, o tamanho mínimo do bloco CIDR de pods será /24. No entanto, tenha cuidado ao restringir a máscara de sub-rede pods.cidrBlocks
além de /16.
O TKG aloca a cada nó de cluster uma sub-rede /24 extraída do pods.cidrBlocks
. Essa alocação é determinada pelo parâmetro Kubernetes Controller Manager > NodeIPAMController chamado NodeCIDRMaskSize, que define o tamanho da máscara de sub-rede para o CIDR do nó no cluster. A máscara de sub-rede do nó padrão é /24 para IPv4.
Como cada nó em um cluster obtém uma sub-rede /24 do pods.cidrBlocks
, você pode ficar sem endereços IP de nó se usar um tamanho de máscara de sub-rede que seja muito restritivo para o cluster que você está provisionando.
Os limites de nó a seguir se aplicam a um cluster Tanzu Kubernetes provisionado com a CNI do Antrea ou do Calico.
/16 == 150 nós no máximo (por ConfigMax)
/17 == 128 nós no máximo
/18 == 64 nós no máximo
/19 == 32 nós no máximo
/20 == 16 nós no máximo
/21 == 8 nós no máximo
/22 == 4 nós no máximo
/23 == 2 nós no máximo
/24 == 1 nó no máximo