Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las redes entre clústeres para Azure Kubernetes Fleet Manager (Fleet) son una solución administrada basada en Cilium Cluster Mesh que permite establecer comunicación directa de pod a pod entre varios clústeres de Azure Kubernetes Service (AKS). Al crear una red entre clústeres, puede habilitar una conectividad este-oeste fluida sin necesidad de pasarelas, al tiempo que obtiene observabilidad multiclúster y una aplicación uniforme de las políticas de seguridad.
Arquitectura y funcionalidades
En una configuración de red entre clústeres, una red virtual plana permite a los pods de distintos clústeres enrutar el tráfico directamente a través de los límites de clúster. Normalmente, a cada clúster se le asignan dos subredes: una para nodos y otra para pods. Esta arquitectura coherente garantiza que la red de pods siga siendo plana en la red entre clústeres, sin utilizar redes de superposiciones o túneles.
Entre los componentes y funcionalidades clave de este escenario se incluyen:
- Azure CNI con el plano de datos de Cilium: ambos clústeres de AKS deben usar Azure CNI con el plano de datos de Azure CNI basado en Cilium.
- Advanced Container Networking Services (ACNS): ACNS debe estar habilitado en los clústeres para admitir este escenario.
-
Azure Kubernetes Fleet Manager: Fleet administra el ciclo de vida y la configuración de la red entre clústeres a través de recursos como el perfil de
ClusterMesh. - Rendimiento nativo: el enrutamiento de IP de los pods se realiza entre clústeres con rendimiento nativo mediante enrutamiento directo, sin necesidad de puertas de enlace ni proxies.
- Aplicación unificada de directivas de red: amplía la aplicación de directivas de red de nivel 3-7 de Cilium a todos los clústeres de la red entre clústeres, lo que garantiza un enfoque de seguridad coherente.
- Observabilidad de varios clústeres: proporciona visibilidad integral de los flujos de tráfico entre clústeres. Esta visibilidad le ayuda a supervisar el estado de la aplicación, a solucionar problemas de conectividad y a analizar los patrones de tráfico en toda la red entre clústeres.
Casos de uso
Las redes entre clústeres permiten varios escenarios clave de varios clústeres. En las secciones siguientes se describen los casos de uso más comunes para las redes entre clústeres con Fleet.
Caso de uso: Detección de servicios transparente y equilibrio de carga
Cuando se usan servicios de Kubernetes estándar y se marcan como globales, Cilium detecta automáticamente los puntos de conexión de esos servicios en todos los clústeres de la red entre clústeres. Cualquier tráfico destinado a un servicio ClusterIP global se equilibra automáticamente la carga en todos los clústeres que contribuyen, lo que simplifica la comunicación entre clústeres.
Las aplicaciones pueden detectar e interactuar con servicios independientemente del clúster en el que residen, sin necesidad de cambios en el nivel de aplicación ni registros de servicios externos.
Caso de uso: alta disponibilidad y tolerancia a errores
La alta disponibilidad es el caso de uso más común para las redes entre clústeres. Este caso de uso incluye el funcionamiento de clústeres de Kubernetes en varias regiones o zonas de disponibilidad y la ejecución de réplicas de los mismos servicios en cada clúster. En caso de fallo, las solicitudes pueden redirigirse automáticamente a otros clústeres de la red multiclúster.
El escenario de error descrito en este caso de uso no es principalmente la falta de disponibilidad completa de toda una región o dominio de error. Un escenario más probable es la falta de disponibilidad temporal de los recursos o la configuración incorrecta en un clúster, lo que conduce a la incapacidad de ejecutar o escalar servicios concretos en ese clúster. Con las redes entre clústeres, el tráfico destinado al servicio afectado se enruta automáticamente a puntos de conexión correctos en otros clústeres, lo que mantiene la aplicación disponible.
Caso de uso: Servicios compartidos
Aunque la tendencia inicial de las plataformas basadas en Kubernetes era crear clústeres grandes y multiinquilino, es cada vez más común crear clústeres individuales por inquilino o crear clústeres para diferentes categorías de servicios, como distintos niveles de confidencialidad de seguridad.
Sin embargo, algunos servicios, como la administración de secretos, el registro, la supervisión o DNS, a menudo se comparten entre todos los clústeres. La centralización de estos servicios en un clúster compartido de "servicio" evita la sobrecarga operativa de mantenerlos en cada clúster de inquilinos.
La motivación principal de este modelo es el aislamiento entre clústeres de inquilinos. Para mantener ese objetivo, los clústeres de inquilinos solo están conectados al clúster de servicios compartidos y no están conectados a otros clústeres de inquilinos.
Caso de uso: separación con estado y sin estado
Puede aislar la complejidad operativa de los servicios con estado, como bases de datos y almacenamiento, en clústeres dedicados. Esta separación mantiene los clústeres de aplicaciones sin estado ágiles y fáciles de migrar. También mejora la seguridad, simplifica la administración del ciclo de vida del clúster y permite escalar cargas de trabajo sin estado de forma independiente de las cargas de trabajo con estado.
Caso de uso: Cumplimiento de directivas y seguridad de varios clústeres
Las redes entre clústeres amplían la aplicación de directivas de red de nivel 3-7 de Cilium en todos los clústeres de la red entre clústeres. Esta aplicación unificada garantiza una posición de seguridad coherente y simplifica la administración de directivas evitando la necesidad de replicar manualmente directivas en todos los entornos. Las directivas aplicadas en un clúster se aplican en el resto de clústeres, lo que proporciona una seguridad unificada y basada en identidades en toda su flota.
Caso de uso: Observabilidad de varios clústeres
Las redes entre clústeres proporcionan visibilidad integral del tráfico que fluye entre los servicios entre clústeres. Al agregar datos de flujo de todos los clústeres de la red entre clústeres, puede visualizar el tráfico este-oeste, supervisar el estado de la aplicación entre regiones, solucionar problemas de conectividad entre clústeres y analizar patrones de tráfico para planear la capacidad.
Con los registros de red de contenedor, los operadores obtienen una vista unificada de la comunicación de pod a pod independientemente del clúster en el que reside el origen o el destino, sin instrumentar aplicaciones.
Servicios globales
Para habilitar el flujo de tráfico entre clústeres, debe configurar los servicios de Kubernetes como servicios globales. En una red entre clústeres, un servicio global es un servicio estándar de Kubernetes que se comparte entre varios clústeres. Al marcar un servicio como global, Cilium detecta automáticamente los puntos de conexión de ese servicio en todos los clústeres de la red entre clústeres y realiza el equilibrio de carga entre ellos.
Una vez que un servicio se marca como global, se respetan las directivas aplicadas en un clúster en los demás clústeres de la red entre clústeres, lo que proporciona una posición de seguridad coherente. Esta configuración permite:
- Detección de servicios transparente: las aplicaciones pueden detectar e interactuar con servicios independientemente del clúster en el que residen.
- Alta disponibilidad: si un servicio de un clúster deja de estar disponible, el tráfico se desplaza automáticamente a una instancia correcta en otro clúster.
Cilium gestiona este descubrimiento observando los servicios con la anotación io.cilium/global-service: "true". Para estos servicios, todos los puntos de conexión con el mismo nombre y espacio de nombres entre clústeres se combinan en un único servicio global. La carga del tráfico destinado al ClusterIP de ese servicio se equilibra en todos los clústeres que contribuyen.
Limitaciones
- Un clúster miembro solo puede participar en una red entre clústeres a la vez.
- Una única red entre clústeres admite hasta 255 clústeres miembro.
- Las configuraciones de varios clústeres de Cilium autoadministradas no se admiten junto con las redes entre clústeres administradas por Flota.
- Los comandos de la CLI de Cilium que modifican la malla, como
cilium clustermesh connectocilium upgrade, no se admiten porque Fleet administra estas operaciones. - Las redes entre clústeres están restringidas a los clústeres dentro del mismo dominio de enrutamiento plano accesible. No admite la conectividad de malla entre redes virtuales no emparejadas.
Pasos siguientes
- Explore los conceptos de Azure Kubernetes Fleet Manager.
- Obtenga más información sobre Advanced Container Networking Services.