Configuraciones de Flux v1 de GitOps con Kubernetes habilitado para Azure Arc

Importante

Los documentos de esta sección son para GitOps con Flux v1. GitOps con Flux v2 está disponible para los clústeres de Kubernetes y Azure Kubernetes Service (AKS) habilitados para Azure Arc; obtenga información sobre GitOps con Flux v2. Se recomienda migrar a Flux v2 lo antes posible.

La compatibilidad con los recursos de configuración de clúster basados en Flux v1 creados antes del 1 de enero de 2024 finalizará el 24 de mayo de 2025. A partir del 1 de enero de 2024, no podrá crear nuevos recursos de configuración de clúster basados en Flux v1.

En relación con Kubernetes, GitOps es la práctica de declarar el estado deseado de las configuraciones de los clústeres de Kubernetes (implementaciones, espacios de nombres, etc.) en un repositorio de Git. A esta declaración le sigue una implementación de sondeo basada en extracción de estas configuraciones de clúster mediante un operador. El repositorio de Git puede contener:

  • Manifiestos con formato YAML que describen cualquier recurso de Kubernetes válido, incluidos espacios de nombres, ConfigMaps, implementaciones, DaemonSets, etc.
  • Gráficos de Helm para implementar aplicaciones.

Flux, una popular herramienta de código abierto en el espacio de GitOps, se puede implementar en el clúster de Kubernetes para facilitar el flujo de configuraciones de un repositorio de Git a un clúster de Kubernetes. Flux admite la implementación de su operador tanto en el ámbito del clúster como del espacio de nombres. Un operador de Flux implementado con el ámbito del espacio de nombres solo puede implementar objetos de Kubernetes dentro de ese espacio de nombres específico. La capacidad de elegir entre el ámbito del clúster o del espacio de nombres ayuda a lograr patrones de implementación multiinquilino en el mismo clúster de Kubernetes.

Configuraciones

Configurations architecture

La conexión entre el clúster y un repositorio de Git se crea como recurso de configuración (Microsoft.KubernetesConfiguration/sourceControlConfigurations) además del recurso de Kubernetes habilitado para Azure Arc (representado por Microsoft.Kubernetes/connectedClusters) en Azure Resource Manager.

Las propiedades del recurso de configuración se usan para implementar el operador de Flux en el clúster con los parámetros adecuados, como el repositorio de Git desde el que se extraerán los manifiestos y el intervalo de sondeo en el que se van a extraer. Los datos del recurso de configuración se almacenan cifrados en reposo en una base de datos de Azure Cosmos DB para garantizar su confidencialidad.

El config-agent en ejecución en el clúster es responsable de:

  • El seguimiento de los recursos de configuración, nuevos o actualizados, en el recurso de Kubernetes habilitado para Azure Arc.
  • La implementación de un operador de Flux para inspeccionar el repositorio de Git para cada recurso de configuración.
  • La aplicación de actualizaciones realizadas a cualquier recurso de configuración.

Puede crear varios recursos de configuración limitados al espacio de nombres en el mismo clúster de Kubernetes habilitado para Azure Arc para lograr la función de multiinquilino.

Nota:

  • config-agent supervisa la disponibilidad de los recursos de configuración, nuevos o actualizados, en el recurso de Kubernetes habilitado para Arc. Por lo tanto, los agentes requieren conectividad para que el estado deseado se lleve al clúster. Si los agentes no pueden conectarse a Azure, se produce un retraso en la propagación del estado deseado al clúster.
  • Las entradas de clientes confidenciales, como la clave privada, el contenido de hosts conocidos, el nombre de usuario HTTPS y el token/contraseña, se almacenan durante 48 horas como máximo en los servicios de Kubernetes habilitado para Azure Arc. Si usa entradas confidenciales para las configuraciones, ponga en línea los clústeres lo más regularmente posible.

Aplicación de configuraciones a escala

Como Azure Resource Manager administra las configuraciones, puede automatizar la creación de la misma configuración en todos los recursos de Kubernetes habilitado para Azure Arc, en el ámbito de una suscripción o de un grupo de recursos.

Esta aplicación a escala garantiza que se pueda aplicar una configuración de línea de base común (que contiene configuraciones como ClusterRoleBindings, RoleBindings y NetworkPolicy) a toda la flota o inventario de clústeres de Kubernetes habilitado para Azure Arc.

Pasos siguientes