Fare riferimento al file YAML di esempio per eseguire il provisioning di un TanzuKubernetesCluster utilizzando l'API v1alpha3 con impostazioni di rete personalizzate.

Esempio v1alpha3: TKC con impostazioni di rete personalizzate

La rete è personalizzata come segue. Per informazioni dettagliate, fare riferimento alle specifiche dell'API v1alpha3.
  • Viene utilizzata la CNI di Calico al posto di quello predefinito di Antrea
  • Vengono utilizzate subnet non predefinite per pod e servizi
  • Vengono dichiarati un server proxy e certificati 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==

Considerazioni sulla personalizzazione della rete di pod TKC

L'impostazione predefinita della specifica del cluster spec.settings.network.pods.cidrBlocks è 192.168.0.0/16.

Se si personalizza, le dimensioni minime del blocco CIDR dei pod sono /24. Tuttavia, prestare attenzione quando si limita la subnet mask di pods.cidrBlocks oltre /16.

TKG alloca a ciascun nodo del cluster una subnet /24 che rileva la pods.cidrBlocks. Questa allocazione è determinata dal parametro di Kubernetes Controller Manager > NodeIPAMController denominato NodeCIDRMaskSize che imposta le dimensioni della subnet mask per il CIDR del nodo nel cluster. La subnet mask del nodo predefinito è /24 per IPv4.

Poiché ogni nodo di un cluster riceve una subnet /24 da pods.cidrBlocks, è possibile che gli indirizzi IP dei nodi si esauriscano se si usa una dimensione della subnet mask troppo restrittiva per il cluster di cui si sta facendo il provisioning.

I limiti dei nodi seguenti si applicano a un cluster Tanzu Kubernetes con provisioning effettuato con la CNI di Antrea o Calico.

/16 == max 150 nodi (per ConfigMax)

/17 == max 128 nodi

/18 == max 64 nodi

/19 == max 32 nodi

/20 == max 16 nodi

/21 == max 8 nodi

/22 == max 4 nodi

/23 == max 2 nodi

/24 == max 1 nodo