È possibile configurare un cluster di Tanzu Kubernetes in modo che utilizzi una rete di pod instradabili specificando antrea-nsx-routed
come CNI per il cluster.
Introduzione alla rete di pod instradabili
Il modello di rete Kubernetes richiede che un pod della rete del nodo di un cluster sia in grado di comunicare con tutti i pod in tutti i nodi dello stesso cluster senza Network Address Translation (NAT). Per soddisfare questo requisito, a ogni pod Kubernetes viene assegnato un indirizzo IP allocato da una rete di pod dedicata.
Quando si esegue il provisioning di un cluster di Tanzu Kubernetes utilizzando i plug-in di CNI antrea
o calico
, il sistema crea la rete di pod predefinita 192.168.0.0/16
. Questa subnet è uno spazio di indirizzi privati che è univoco solo all'interno del cluster e non instradabile su Internet. Anche se è possibile personalizzare network.pods.cidrBlocks
, la rete di pod non può essere instradabile tramite questi plug-in di CNI. Per ulteriori informazioni, vedere Parametri di configurazione per il provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha2 del Servizio Tanzu Kubernetes Grid.
L'API v1alpha2 di Servizio Tanzu Kubernetes Grid supporta la rete di pod instradabili tramite il plug-in di CNI antrea-nsx-routed
. Questa interfaccia di rete è un plug-in personalizzato Antrea configurato per supportare reti di pod instradabili per i cluster di Tanzu Kubernetes. Nella specifica del cluster, il campo dei blocchi CIDR dei pod deve essere esplicitamente nullo in modo che la gestione degli indirizzi IP (IPAM) venga eseguita dal Cluster supervisore.
- Il traffico è consentito tra un pod del cluster di Tanzu Kubernetes e un Pod vSphere nello stesso Spazio dei nomi vSphere.
- Il traffico viene eliminato tra un pod del cluster di Tanzu Kubernetes e un Pod vSphere in Spazi dei nomi vSphere diversi.
- I nodi del piano di controllo del Cluster supervisore possono raggiungere i pod del cluster Tanzu Kubernetes.
- I pod del cluster di Tanzu Kubernetes possono raggiungere la rete esterna.
- La rete esterna non può raggiungere i pod del cluster di Tanzu Kubernetes. Il traffico viene eliminato dalle regole di isolamento DFW (Distributed Firewall) nei nodi del cluster di Tanzu Kubernetes.
Requisiti di sistema per i pod instradabili
La rete di pod instradabili richiede la configurazione del Cluster supervisore con NSX-T Data Center. Non è possibile utilizzare pod instradabili con servizi di rete vSphere vDS nativi.
I pod instradabili richiedono l'API v1alpha2 di Servizio Tanzu Kubernetes Grid. Vedere Requisiti per l'utilizzo dell'API v1alpha2 Servizio Tanzu Kubernetes Grid.
Requisiti di configurazione di NSX-T per i pod instradabili
A parte i requisiti di base, non è necessaria alcuna configurazione speciale di NSX-T per utilizzare reti di pod instradabili con cluster di Tanzu Kubernetes. Un ambiente di vSphere with Tanzu che esegue vSphere U3 con NSX-T include la versione di NCP per supportare le reti di pod instradabili. Non è necessaria alcuna configurazione di NSX-T aggiuntiva.
- Se la rete del carico di lavoro è configurata con una rete dello spazio dei nomi, NCP creerà uno o più pool di IP dai blocchi di IP specificati per questa rete dello spazio dei nomi.
- Se non viene specificata alcuna rete dello spazio dei nomi per la rete del carico di lavoro, NCP creerà uno o più pool di IP dal CIDR del pod del Cluster supervisore.
Requisiti di configurazione del Cluster supervisore per i pod instradabili
A parte i requisiti di base, non è necessaria alcuna configurazione speciale del Cluster supervisore per utilizzare reti di pod instradabili con cluster di Tanzu Kubernetes.
Se la rete di pod instradabili è abilitata come descritto di seguito, il CIDR dei pod del cluster di Tanzu Kubernetes viene allocato dal pool di IP creato dalla rete dello spazio dei nomi o, se non è presente, dal CIDR del pod del Cluster supervisore.
È necessario assicurarsi che il CIDR dei servizi del Cluster supervisore che alloca gli indirizzi IP per i nodi del cluster non si sovrapponga al CIDR della rete dello spazio dei nomi o al CIDR del pod del Cluster supervisore.
Esempio di configurazione del cluster per i pod instradabili
Il seguente esempio di codice YAML indica come configurare un cluster con una rete di pod instradabili. Si tratta di una configurazione personalizzata per richiamare l'Servizio Tanzu Kubernetes Grid ed eseguire il provisioning di un cluster di Tanzu Kubernetes utilizzando l'API v1alpha2.
La specifica del cluster dichiara antrea-nsx-routed
come CNI per abilitare la rete dei pod instradabili. Quando la CNI è antrea-nsx-routed
, il campo pods.cidrBlock
deve essere vuoto. Se si specifica antrea-nsx-routed
, il provisioning del cluster non riuscirà se non si utilizza la rete NSX-T.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-v2-cluster-routable-pods namespace: tkgs-cluster-ns spec: topology: controlPlane: replicas: 3 vmClass: guaranteed-medium storageClass: vwt-storage-policy tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 nodePools: - name: worker-nodepool-a1 replicas: 3 vmClass: guaranteed-large storageClass: vwt-storage-policy tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 settings: storage: defaultClass: vwt-storage-policy network: #`antrea-nsx-routed` is the required CNI #for routable pods cni: name: antrea-nsx-routed services: cidrBlocks: ["10.97.0.0/24"] serviceDomain: tanzukubernetescluster.local #`pods.cidrBlocks` value must be empty #when `antrea-nsx-routed` is the CNI pods: cidrBlocks: