Conceptos de redes de aplicaciones en Azure Kubernetes Service (AKS)
En un enfoque de microservicios basado en contenedores para desarrollar aplicaciones, los componentes de la aplicación funcionan juntos para procesar sus tareas. Kubernetes proporciona varios recursos que permiten esta cooperación:
- Puede conectarse a aplicaciones y exponer estas de forma interna o externa.
- Puede equilibrar la carga de sus aplicaciones para compilar aplicaciones de alta disponibilidad.
- Para mayor seguridad, puede restringir el flujo de tráfico entre los pods y los nodos.
- Para aplicaciones más complejas, puede configurar el tráfico de entrada para la terminación SSL/TLS o el enrutamiento de varios componentes.
En este artículo se presentan los conceptos básicos que proporcionan redes para sus aplicaciones en AKS:
Conceptos básicos de redes de Kubernetes
Kubernetes emplea una capa de red virtual para administrar el acceso dentro y entre las aplicaciones o sus componentes:
Nodos y red virtual de Kubernetes: los nodos de Kubernetes están conectados a una red virtual. Esta configuración permite que los pods (unidades básicas de implementación en Kubernetes) tengan conectividad entrante y saliente.
Componente kube-proxy: kube-proxy se ejecuta en cada nodo y es responsable de proporcionar las características de red necesarias.
Con respecto a las funcionalidades específicas de Kubernetes:
- Equilibrador de carga: puede usar un equilibrador de carga para distribuir el tráfico de red uniformemente entre varios recursos.
- Controladores de entrada: facilitan el enrutamiento de capa 7, que es esencial para dirigir el tráfico de la aplicación.
- Control del tráfico de salida: Kubernetes permite administrar y controlar el tráfico saliente de los nodos del clúster.
- Directivas de red: estas directivas permiten establecer medidas de seguridad y el filtrado del tráfico de red en los pods.
En el contexto de la plataforma Azure:
- Azure simplifica las redes virtuales para clústeres de AKS (Azure Kubernetes Service).
- La creación de un equilibrador de carga de Kubernetes en Azure configura simultáneamente el recurso del equilibrador de carga de Azure correspondiente.
- A medida que abre puertos de red a los pods, Azure configura automáticamente las reglas necesarias de grupo de seguridad de red.
- Azure también puede administrar configuraciones DNS externas para el enrutamiento de aplicaciones HTTP a medida que se establecen nuevas rutas de entrada.
Redes virtuales de Azure
En AKS, puede implementar un clúster que use uno de los siguientes modelos de red:
- Modelo de red de superposición: las redes de superposición son el modelo de red más común que se usa en Kubernetes. Los pods reciben una dirección IP de un CIDR privado y lógicamente separado de la subred de la red virtual de Azure en la que están implementados los nodos de AKS. Este modelo permite una escalabilidad más sencilla y mejorada en comparación con el modelo de red plana.
- Modelo de red plana: un modelo de red plana en AKS asigna direcciones IP a pods desde una subred desde la misma red virtual de Azure que los nodos de AKS. El tráfico que sale de sus clústeres no se somete a SNAT y la dirección IP del pod se expone directamente al destino. Este modelo puede ser útil para escenarios como exponer direcciones IP de pod a servicios externos.
Para obtener más información sobre los modelos de red en AKS, consulte Redes de CNI en AKS.
Control del tráfico de salida
Los clústeres de AKS se implementan en una red virtual y tienen dependencias de salida de los servicios fuera de esa red virtual, que se definen casi por completo con nombres de dominio completos (FQDN). AKS proporciona varias opciones de configuración de salida que permiten personalizar la forma en que se accede a estos recursos externos.
Para obtener más información sobre los tipos de configuración de salida de clúster de AKS admitidos, consulte Personalizar salida de clúster con tipos de salida en Azure Kubernetes Service (AKS).
De forma predeterminada, los clústeres de AKS tienen acceso de salida a Internet sin restricciones, lo que permite que los nodos y servicios que ejecute accedan a los recursos externos necesarios. Si lo desea, puede restringir el tráfico de salida.
Para obtener más información sobre cómo restringir el tráfico saliente del clúster, consulte Controlar tráfico de salida para los nodos de clúster en AKS.
Grupos de seguridad de red
Un grupo de seguridad de red filtra el tráfico de las máquinas virtuales, como los nodos de AKS. Al crear servicios, como LoadBalancer, la plataforma Azure configura automáticamente las reglas de grupo de seguridad de red necesarias.
No necesita configurar manualmente las reglas del grupo de seguridad de red para filtrar el tráfico de los pods en un clúster de AKS. Puede definir los puertos necesarios y el reenvío como parte de los manifiestos de servicio de Kubernetes y permitir que la plataforma Azure cree o actualice las reglas correspondientes.
También puede usar directivas de red para aplicar automáticamente las reglas de filtro de tráfico a los pods.
Para más información, consulte Cómo filtran el tráfico de red los grupos de seguridad de red.
Directivas de red
De forma predeterminada, todos los pods de un clúster de AKS pueden enviar y recibir tráfico sin limitaciones. Para mejorar la seguridad, defina reglas que controlen el flujo de tráfico, como:
- Las aplicaciones back-end solo se exponen a los servicios de front-end necesarios.
- Los componentes de base de datos solo son accesibles para las capas de aplicación que se conectan a ellos.
La directiva de red es una característica de Kubernetes disponible en AKS que permite controlar el flujo de tráfico entre pods. Según la configuración como las etiquetas asignadas, el espacio de nombres o el puerto de tráfico, puede permitir o denegar el tráfico al pod. Aunque los grupos de seguridad de red son mejores para los nodos de AKS, las directivas de red son una manera más adecuada y nativa de la nube para controlar el flujo de tráfico de los pods. Como los pods se crean dinámicamente en un clúster de AKS, se pueden aplicar automáticamente las directivas de red necesarias.
Para más información, consulte Protección del tráfico entre pods mediante directivas de red en Azure Kubernetes Service (AKS).
Pasos siguientes
Para empezar a trabajar con las redes de AKS, cree y configure un clúster de AKS con sus propios intervalos de direcciones IP mediante Superposición de Azure CNI o CNI de Azure.
Para los procedimientos recomendados asociados, consulte Procedimientos recomendados con la conectividad de red y la seguridad en Azure Kubernetes Service (AKS).
Para obtener más información sobre los conceptos básicos de Kubernetes y AKS, consulte los artículos siguientes:
Azure Kubernetes Service