Redes entre clústeres para Azure Kubernetes Fleet Manager (versión preliminar)

Se aplica a: ✔️ Gestor de flotas ✔️ Gestor de flotas con clúster de concentrador

Azure Kubernetes Fleet Manager proporciona una solución de red entre clústeres dedicada que amplía la ruta de datos de Kubernetes en varios clústeres. El uso de redes entre clústeres permite que cualquier clúster conectado se comunique directamente con los puntos de conexión de cualquier otro clúster conectado con la aplicación completa de directivas de red. El uso de redes entre clústeres permite que los clústeres publiquen servicios de forma que cualquier clúster conectado pueda llamarlos como si fueran locales.

Se pueden crear varios perfiles de red entre clústeres en Fleet Manager, con la única restricción que es que los clústeres miembros solo pueden participar en una única red entre clústeres.

En este artículo, se presentan conceptos clave para las redes entre clústeres para Azure Fleet Manager de Kubernetes.

Importante

Las características de la versión preliminar de Azure Kubernetes Fleet Manager están disponibles de forma auto-servicio y optativa. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y garantía limitada. Las versiones preliminares de Azure Kubernetes Fleet Manager reciben cobertura parcial del soporte al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción.

Requisitos previos y limitaciones

  • Una red entre clústeres puede tener hasta 255 clústeres miembros.
  • Los clústeres miembro de Fleet Manager solo pueden participar en una única red entre clústeres en cualquier momento.
  • Los clústeres deben ejecutar Kubernetes v1.32 o superior y tener Advanced Container Networking Services (ACNS) con Cilium habilitado.
  • Los clústeres deben estar conectados a una sola red plana (red virtual o varias redes emparejadas).
  • No se admite la superposición de redes con túneles.
  • La interconexión de clústeres de Cilium gestionada por el usuario no puede implementarse al mismo tiempo.
  • ACNS establece la versión de Cilium y las características habilitadas. Actualmente no se pueden modificar directamente.

Conceptos fundamentales

Las redes entre clústeres para Azure Kubernetes Fleet Manager proporcionan una implementación de Cilium multi-clúster gestionada por flotas que elimina la sobrecarga de configurar y administrar los componentes del plano de datos de Cilium multi-clúster en cada clúster miembro.

Cuando un clúster se une a una red entre clústeres, el agente de Cilium (cilium-agent) y clustermesh-apiserver se implementan en el plano de control del clúster mediante Fleet Manager. Los clústeres existentes en la misma red entre clústeres se actualizan con los detalles del clúster recién agregado y el agente de Cilium configura el enrutamiento basado en eBPF para permitir que los pods de cada clúster se comuniquen directamente sin servidores proxy ni puertas de enlace.

Cada clúster conserva su configuración local de direccionamiento IP CIDR para pods y servicios. Los componentes locales de Cilium son responsables del enrutamiento que permite a los pods de un clúster acceder a servicios en clústeres remotos como si fueran locales.

Para el control de flujo de tráfico, las directivas de red de Cilium (CiliumNetworkPolicy) se pueden usar para controlar el flujo de datos entre clústeres, lo que permite a los administradores aplicar límites dentro de la red entre clústeres.

Definición de servicios globales

Kubernetes Services en cualquier miembro de red entre clústeres puede estar disponible globalmente en la red entre clústeres cuando se cumplen las dos condiciones siguientes:

  • El espacio de nombres que contiene el servicio tiene la anotación clustermesh.cilium.io/global con un valor de true.
  • El servicio tiene la anotación service.cilium.io/global con un valor de true.

Implementar un servicio con estas anotaciones en varios clústeres miembro de la red entre clústeres distribuye transparentemente la carga de las solicitudes entre esos clústeres.

Note

La instalación multiclúster administrada de Cilium de Fleet Manager establece clustermesh-default-global-namespace: false, lo que difiere del valor predeterminado de Cilium. Esta configuración mejora la escalabilidad al limitar la cantidad de estado (CiliumEndpoints, CiliumIdentities y Servicios) que se sincroniza entre clústeres únicamente a los recursos de los espacios de nombres que tengan la anotación clustermesh.cilium.io/global establecida con un valor de true. Como resultado, se requiere la suscripción explícita por espacio de nombres configurando esa anotación.

Puede quitar temporalmente un Servicio de un servicio global con balanceo de carga quitando la anotación service.cilium.io/global (o estableciéndola en false) en dicho Servicio. Para dejar de compartir todos los servicios de un espacio de nombres de un clúster determinado, quite la anotación clustermesh.cilium.io/global del espacio de nombres (o establézcala en false) en ese clúster.

Depuración y solución de problemas

Las herramientas estándar de la interfaz de línea de comandos (CLI) de Cilium funcionan con redes entre clústeres para Fleet Manager. Algunos comandos como upgrade y clustermesh connect no funcionan porque ahora son acciones que debe realizar Fleet Manager.

Estos son los pasos generales para empezar a depurar y solucionar problemas:

  • Instale la CLI estable más reciente de Cilium para su sistema operativo desde el repositorio oficial en GitHub de la CLI de Cilium.
  • Seleccione un clúster miembro de red entre clústeres y recupere su kubeconfig mediante el az aks get-credentials comando .
  • Use la CLI de Cilium y pase el contexto del clúster mediante el --context parámetro .

La CLI de Cilium puede administrar varias versiones de Cilium.

Actualización de redes entre clústeres

Una razón para adoptar redes entre clústeres en lugar de instalar y gestionar por sí mismo un multiclúster de Cilium es que Fleet Manager mantiene los componentes de Cilium actualizados.

Las actualizaciones de los componentes de Cilium en la red entre clústeres se incluyen en las versiones de Kubernetes de AKS. Las actualizaciones se simplifican mediante la validación previa de que los componentes de Cilium funcionan con la versión de Kubernetes que ejecuta el clúster, lo que garantiza que la red entre clústeres permanece estable.

Este enfoque significa que puede usar las ejecuciones y estrategias de actualización de Fleet Manager para actualizar el plano de control de los clústeres, definiendo el orden en el que se actualizan los clústeres.

Pasos siguientes