Compartir vía


Redes superpuestas de la interfaz de red de contenedor de Azure (CNI)

Con Azure CNI Overlay, los nodos del clúster se implementan en una subred de Azure Virtual Network (VNet). Los pods son direcciones IP asignadas desde un CIDR privado que es diferente lógicamente a la red virtual que hospeda los nodos. El tráfico de nodos y pods dentro del clúster usa una red superpuesta. La traducción de direcciones de red (NAT) usa la dirección IP del nodo para llegar a los recursos fuera del clúster. Esta solución ahorra una cantidad significativa de direcciones IP de red virtual y le permite escalar el clúster a tamaños grandes. Una ventaja añadida es que puede reutilizar el CIDR privado en diferentes clústeres AKS, lo que amplía el espacio IP disponible para aplicaciones contenedorizadas en Azure Kubernetes Service (AKS).

Introducción a las redes de superposición

En las redes superpuestas, solo los nodos del clúster de Kubernetes se asignan direcciones IP desde subredes. Los pods reciben direcciones IP de un CIDR privado que se proporciona en el momento de la creación del clúster. A cada nodo se le asigna un espacio de direcciones /24 extraído del mismo CIDR. Los nodos adicionales que se crean al escalar horizontalmente un clúster reciben automáticamente espacios de direcciones /24 del mismo CIDR. Azure CNI asigna direcciones IP a los pods desde este espacio /24.

Se crea un dominio de enrutamiento independiente en la pila de redes de Azure para el espacio del CIDR privado del pod, que crea una red de superposición para la comunicación directa entre pods. No es necesario aprovisionar rutas personalizadas en la subred del clúster ni usar un método de encapsulación para tunelizar el tráfico entre pods, lo que proporciona rendimiento de conectividad entre pods a par con máquinas virtuales en una red virtual. Las cargas de trabajo que se ejecutan en los pods ni siquiera son conscientes de que se está produciendo la manipulación de direcciones de red.

Diagrama que muestra dos nodos con tres pods cada uno que ejecutan una red de superposición. El tráfico de los pods a los puntos de conexión fuera del clúster se enruta mediante NAT.

La comunicación con puntos de conexión fuera del clúster, como redes virtuales locales y emparejadas, se produce con la dirección IP del nodo mediante NAT. Azure CNI traduce la dirección IP de origen (dirección IP de superposición del pod) del tráfico a la dirección IP principal de la máquina virtual, lo que permite que la pila de redes de Azure enrute el tráfico al destino. Los puntos de conexión fuera del clúster no se pueden conectar directamente a un pod. Tiene que publicar la aplicación del pod como un servicio de equilibrador de carga de Kubernetes para que sea accesible en la red virtual.

Puede proporcionar conectividad de salida a Internet para los pods de superposición mediante una SKU Estándar de Load Balancer o una instancia administrada de NAT Gateway. También puede controlar el tráfico de salida si lo dirige a un firewall mediante rutas definidas por el usuario en la subred del clúster.

Puede configurar la conectividad de entrada al clúster mediante un controlador de entrada como Nginx o el enrutamiento de aplicaciones HTTP. No se puede configurar la conectividad de entrada mediante Azure Application Gateway. Para obtener más información, consulte Limitaciones de la superposición de Azure CNI.

Diferencias entre kubenet y La superposición de Azure CNI

En la tabla siguiente se proporciona una comparación detallada entre kubenet y La superposición de Azure CNI:

Área Superposición de Azure CNI kubenet
Escalado de clústeres 5000 nodos y 250 pods/nodo 400 nodos y 250 pods/nodo
Network configuration (Configuración de red) Simple: no se requiere ninguna configuración adicional para las redes de los pods Compleja: requiere tablas de rutas y UDR en la subred del clúster para las redes de los pods.
Rendimiento de la conectividad de los pods Rendimiento a la par de las máquinas virtuales de una red virtual Un salto adicional agrega una latencia menor.
Directivas de red de Kubernetes Directivas de red de Azure, Calico, Cilium Calico
Plataformas de sistema operativo compatibles Linux y Windows Server 2022, 2019 solo Linux.

Planeación de direcciones IP

Nodos de clúster

Al configurar el clúster de AKS, asegúrese de que las subredes de red virtual tengan suficiente espacio para crecer para el escalado futuro. Puede asignar cada grupo de nodos a una subred dedicada.

Una subred de /24 puede caber hasta 251 nodos, ya que las tres primeras direcciones IP están reservadas para las tareas de administración.

Pods

La solución Overlay asigna un espacio de direcciones /24 para pods en cada nodo del CIDR privado que especifique durante la creación del clúster. El tamaño /24 es fijo y no se puede aumentar ni disminuir. Puede ejecutar hasta 250 pods en un nodo.

Al planear el espacio de direcciones IP para pods, tenga en cuenta los siguientes factores:

  • Asegúrese de que el CIDR privado es lo suficientemente grande como para proporcionar /24 espacios de direcciones para que los nuevos nodos admitan la expansión futura del clúster.
  • Se puede usar el mismo espacio del CIDR de los pods en varios clústeres de AKS independientes de la misma red virtual.
  • El espacio del CIDR de los pods no se debe superponer con el intervalo de la subred del clúster.
  • El espacio CIDR del pod no debe superponerse con redes conectadas directamente (como el emparejamiento de VNet, ExpressRoute o VPN). Si el tráfico externo tiene direcciones IP de origen en el intervalo podCIDR, debe traducirse a una dirección IP no superpuesta a través de SNAT para comunicarse con el clúster.

Intervalo de direcciones del servicio de Kubernetes

El tamaño del CIDR de la dirección de servicio depende del número de servicios de clúster que planea crear. Debe ser menor que /12. Este intervalo no se debe superponer con el intervalo del CIDR de los pods, el intervalo de la subred del clúster y el intervalo IP que se usa en las redes virtuales emparejadas y las redes locales.

Dirección IP del servicio DNS de Kubernetes

Esta dirección IP está dentro del intervalo de direcciones del servicio Kubernetes que usa la detección de servicios de clúster. No use la primera dirección IP del intervalo de direcciones, ya que esta dirección se usa para la dirección kubernetes.default.svc.cluster.local.

Grupos de seguridad de red

El tráfico de pod a pod con la superposición de Azure CNI no está encapsulado y se aplican reglas del grupo de seguridad de red de subred. Si el grupo de seguridad de red de subred contiene reglas de denegación que afectarían al tráfico CIDR del pod, asegúrese de que se han implementado las siguientes reglas para garantizar la correcta funcionalidad del clúster (además de todos los requisitos de salida de AKS):

  • Tráfico del CIDR del nodo al CIDR del nodo en todos los puertos y protocolos
  • Tráfico del CIDR del nodo al CIDR del pod en todos los puertos y protocolos (necesario para el enrutamiento del tráfico del servicio)
  • Tráfico del CIDR del pod al CIDR del pod en todos los puertos y protocolos (necesario para pod a pod y pod al tráfico de servicio, incluido el DNS)

El tráfico de un pod a cualquier destino fuera del bloque CIDR del pod usa SNAT para establecer la dirección IP de origen en la dirección IP del nodo donde se ejecuta el pod.

Si desea restringir el tráfico entre cargas de trabajo en el clúster, se recomienda usar directivas de red.

Pods máximos por nodo

Puede configurar el número máximo de pods por nodo en el momento de la creación del clúster o al agregar un nuevo grupo de nodos. El valor predeterminado y máximo de La superposición de Azure CNI es 250. El valor mínimo es 10. El valor del número máximo de pods por nodo configurado durante la creación de un grupo de nodos solo se aplica a los nodos de ese grupo de nodos.

Selección del modelo de red que se va utilizar

Azure CNI ofrece dos opciones de direccionamiento IP para pods: la configuración tradicional, que asigna direcciones IP de red virtual a los pods, y las redes de superposición. Elegir qué opción utilizar para el clúster de AKS es una cuestión de equilibrar las necesidades de flexibilidad y configuración avanzada. Las consideraciones siguientes ayudan a indicar cuándo puede resultar más conveniente cada modelo de red.

Use redes de superposición cuando:

  • Quiere escalar a un gran número de pods, pero tiene un espacio de direcciones IP limitado en la red virtual.
  • La mayor parte de la comunicación de los pods se realice dentro del clúster.
  • No necesite características avanzadas de AKS, como los nodos virtuales.

Use la opción de red virtual tradicional cuando:

  • Tenga espacio de direcciones IP disponible.
  • La mayor parte de la comunicación de los pods se realice con recursos fuera del clúster.
  • Los recursos fuera del clúster deben acceder directamente a los pods.
  • Necesite características avanzadas de AKS, como los nodos virtuales.

Limitaciones de la superposición de Azure CNI

La superposición de Azure CNI tiene las siguientes limitaciones:

  • No puede usar Application Gateway como controlador de entrada (AGIC).
  • No se admiten conjuntos de disponibilidad de máquinas virtuales (VMAS).
  • No puede usar máquinas virtuales de la serie DCsv2 en grupos de nodos. Para cumplir los requisitos de computación confidencial, considere la posibilidad de usar máquinas virtuales confidenciales de la serie DCasv5 o DCadsv5 en su lugar.
  • Si usa su propia subred para implementar el clúster, los nombres de la subred, la red virtual y el grupo de recursos que contiene la red virtual deben tener 63 caracteres o menos. Estos nombres se usarán como etiquetas en los nodos de trabajo de AKS y estarán sujetos a Reglas de sintaxis de etiquetas de Kubernetes.