Puede configurar un clúster de Tanzu Kubernetes para utilizar redes de pods enrutables especificando antrea-nsx-routed
como la CNI del clúster.
Introducción a las redes de pods enrutables
El Modelo de red de Kubernetes requiere que un pod de la red de nodos de un clúster pueda comunicarse con todos los pods de todos los nodos del mismo clúster sin traducción de direcciones de red (Network Address Translation, NAT). Para satisfacer este requisito, a cada pod de Kubernetes se le asigna una dirección IP que se asigna desde una red de pods dedicada.
Cuando se aprovisiona un clúster de Tanzu Kubernetes mediante los complementos de CNI antrea
o calico
, el sistema crea la red de pods predeterminada 192.168.0.0/16
. Esta subred es un espacio de direcciones privadas que solo es único dentro del clúster y no se puede enrutar en Internet. Aunque puede personalizar network.pods.cidrBlocks
, la red de pods no se puede enrutar mediante estos complementos de CNI. Para obtener más información, consulte API v1alpha2 de TKGS para aprovisionar clústeres de Tanzu Kubernetes.
La API de servicio Tanzu Kubernetes Grid v1alpha2 admite redes de pods enrutables mediante el complemento de CNI de antrea-nsx-routed
. Esta interfaz de red es un complemento de Antrea personalizado configurado para admitir redes de pods enrutables para clústeres de Tanzu Kubernetes. En la especificación de clúster, el campo de bloques CIDR de pods debe ser explícitamente nulo para que la administración de direcciones IP (IPAM) se controle mediante clúster supervisor.
- Se permite el tráfico entre un pod de clúster Tanzu Kubernetes y un pod de vSphere en el mismo espacio de nombres de vSphere.
- El tráfico se descarta entre un pod de clúster de Tanzu Kubernetes y un pod de vSphere en diferentes espacios de nombres de vSphere.
- Los nodos del plano de control de clúster supervisor pueden acceder a los pods del clúster de Tanzu Kubernetes.
- Los pods de clúster de Tanzu Kubernetes pueden alcanzar la red externa.
- La red externa no puede acceder a los pods de clúster de Tanzu Kubernetes. Las reglas de aislamiento de firewall distribuido (DFW) descartan el tráfico en los nodos del clúster de Tanzu Kubernetes.
Requisitos del sistema para pods enrutables
Las redes de pods enrutables requieren que clúster supervisor se configure con NSX-T Data Center. No se pueden utilizar pods enrutables con redes de vSphere vDS nativas.
Los pods enrutables requieren la API de servicio Tanzu Kubernetes Grid v1alpha2. Consulte Requisitos para usar la API v1alpha2 de TKGS.
Requisitos de configuración de NSX-T para pods enrutables
Además de los requisitos básicos, no se requiere una configuración especial de NSX-T para usar redes de pods enrutables con clústeres de Tanzu Kubernetes. Un entorno de vSphere with Tanzu que ejecuta vSphere U3 con NSX-T incluye la versión de NCP para admitir redes de pods enrutables. No se necesita ninguna configuración adicional de NSX-T.
- Si la red de carga de trabajo está configurada con una red de espacio de nombres, NCP creará uno o más grupos de IP a partir de los bloques de IP especificados para esta red de espacio de nombres.
- Si no hay ninguna red de espacio de nombres especificada para la red de carga de trabajo, NCP creará uno o más grupos de direcciones IP desde el CIDR del pod de clúster supervisor.
clúster supervisor Requisitos de configuración para pods enrutables
Además de los requisitos básicos, no se requiere ninguna configuración de clúster supervisor especial para usar redes de pods enrutables con clústeres de Tanzu Kubernetes.
Si las redes de pods enrutables están habilitadas como se describe a continuación, el CIDR de pods de clúster de Tanzu Kubernetes se asigna desde el grupo de direcciones IP creado desde la red de espacio de nombres o, si no hay ninguno, desde el CIDR de pods de clúster supervisor.
Debe asegurarse de que el CIDR de servicios de clúster supervisor que asigna las direcciones IP para los nodos del clúster no se superponga con el CIDR de la red de espacio de nombres o con el CIDR del pod de clúster supervisor.
Ejemplo de configuración de clúster para pods enrutables
El siguiente ejemplo de YAML muestra cómo configurar un clúster con una red de pods enrutable. es una configuración personalizada para invocar a servicio Tanzu Kubernetes Grid y aprovisionar un clúster de Tanzu Kubernetes mediante la API v1alpha2.
La especificación del clúster declara antrea-nsx-routed
como la CNI para habilitar las redes de pods enrutables. Cuando se especifica la CNI es antrea-nsx-routed
, el campo pods.cidrBlock
debe estar vacío. Si se especifica antrea-nsx-routed
, se producirá un error en el aprovisionamiento del clúster si no se utilizan redes de 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: