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
- 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