Consulte el ejemplo de YAML para aprovisionar un clúster de Tanzu Kubernetes mediante la API v1alpha3 con la configuración de red personalizada.

Ejemplo de v1alpha3: TKC con configuración personalizada

La red se personaliza de la siguiente manera. Consulte la especificación de la API v1alpha3 para obtener más información.
  • La CNI de Calico se utiliza en lugar de la Antrea predeterminada
  • Se utilizan subredes no predeterminadas para pods y servicios
  • Se declaran un servidor proxy y certificados 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==

Consideraciones para personalizar la red de pods de TKC

El valor predeterminado de la configuración de la especificación del clúster spec.settings.network.pods.cidrBlocks es 192.168.0.0/16.

Si personaliza, el tamaño mínimo del bloque CIDR de los pods es /24. Sin embargo; tenga cuidado al restringir la máscara de subred de pods.cidrBlocks más allá de /16.

TKG asigna a cada nodo de clúster una subred /24 creada desde pods.cidrBlocks. Esta asignación se determina mediante el parámetro Administrador de controladoras de Kubernetes > NodeIPAMController denominado NodeCIDRMaskSize que establece el tamaño de la máscara de subred para el CIDR de nodo en el clúster. La máscara de subred del nodo predeterminada es /24 para IPv4.

Debido a que cada nodo de un clúster obtiene una subred /24 de pods.cidrBlocks, puede quedarse sin direcciones IP de nodo si utiliza un tamaño de máscara de subred que sea demasiado restrictivo para el clúster que está aprovisionando.

Los siguientes límites de nodos se aplican a un clúster de Tanzu Kubernetes aprovisionado con la CNI de Antrea o Calico.

/16 == 150 nodos máx. (por ConfigMax)

/17 == 128 nodos máx.

/18 == 64 nodos como máximo

/19 == 32 nodos como máximo

/20 == 16 nodos como máximo

/21 == 8 nodos como máximo

/22 == 4 nodos como máximo

/23 == 2 nodos como máximo

/24 == 1 nodo máx.