Flujo - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Flujo

Flux es otra herramienta para Kubernetes que implementa los GitOps principios de una manera única.

GitOps soporte

Área Capacidades de la herramienta

Git como única fuente de información

Flux utiliza los repositorios de Git como fuente definitiva para definir el estado deseado del sistema. Toda la configuración de las aplicaciones y la infraestructura se almacena en Git.

Configuración declarativa

Flux trabaja con descripciones declarativas del estado deseado de su clúster. Estas descripciones suelen ser manifiestos de Kubernetes, gráficos de Helm o superposiciones de Kustomize.

Sincronización automatizada

Flux monitorea continuamente el repositorio de Git para detectar cambios. Cuando detecta cambios, los aplica automáticamente al clúster.

Nativo de Kubernetes

Flux está diseñado como un conjunto de controladores de Kubernetes y recursos personalizados. Utiliza los mecanismos de extensión de Kubernetes para proporcionar capacidades. GitOps

Modelo de despliegue basado en extracciones

A diferencia de los CI/CD sistemas tradicionales basados en la tracción, Flux utiliza un modelo basado en la tracción. El clúster extrae el estado deseado de Git en lugar de utilizar un sistema externo para enviar los cambios.

Reconciliación continua

Flux compara constantemente el estado real del clúster con el estado deseado en Git. Corrige automáticamente cualquier desviación que se detecte entre estos estados.

Tenencia múltiple

Flux apoya la multitenencia a través de sus conceptos de personalización y. HelmReleases Los diferentes equipos pueden gestionar sus propias partes de la configuración de forma independiente.

Entrega progresiva

Flux admite estrategias de implementación avanzadas, como las versiones y las A/B pruebas de Canary, a través de su componente Flagger.

Integración de Helm

Flux incluye soporte nativo para Helm, por lo que puedes gestionar fácilmente las versiones de Helm GitOps.

Automatización de la actualización de imágenes

Flux puede actualizar automáticamente las imágenes del contenedor en Git cuando hay nuevas versiones disponibles en el registro del contenedor.

Personaliza el soporte

Puedes usar el soporte nativo que ofrece Flux para Kustomize para personalizar y parchear los manifiestos de Kubernetes.

Seguridad y RBAC

Flux se integra con el RBAC de Kubernetes para el control de acceso. Soporta la gestión de secretos a través de varios backends.

Observabilidad

Flux proporciona información de estado y métricas sobre la reconciliación y las operaciones. Se integra con las herramientas de monitoreo para mejorar la observabilidad.

Arquitectura basada en eventos

Flux utiliza un enfoque basado en eventos para implementar conciliaciones y actualizaciones.

Extensibilidad

La herramienta está diseñada para ser extensible, por lo que puede agregar controladores y recursos personalizados.

Sincronización entre clústeres

Flux admite la gestión de varios clústeres desde un único conjunto de repositorios.

Administración de dependencias

Permite definir las dependencias entre las diferentes partes del sistema y garantiza el orden correcto de las operaciones.

Receptores Webhook

Puedes configurar Flux para recibir webhooks de proveedores de Git u otros sistemas para iniciar la reconciliación inmediata.

Al implementar estos GitOps principios, Flux proporciona un sistema sólido y flexible para administrar los clústeres y las aplicaciones de Kubernetes. Garantiza que tu infraestructura y tus aplicaciones estén siempre sincronizadas con tus repositorios de Git y proporciona coherencia, confiabilidad y facilidad de administración en entornos complejos de Kubernetes. El enfoque nativo de Kubernetes de la herramienta y su enfoque en la automatización la hacen especialmente adecuada para entornos nativos de la nube.

Para ver los escenarios y requisitos que Flux puede abordar, consulte los casos de uso de Flux más adelante en esta guía. Para ver una comparación entre Argo CD y Flux, consulta la comparación de funciones más adelante en esta guía.

Para obtener información adicional, consulta la documentación de Flux.

Arquitectura

El siguiente diagrama ilustra un flujo de trabajo de CD GitOps controlado por componentes que utiliza Flux dentro de un clúster de EKS. Para obtener información detallada, consulte la documentación de Flux.

La arquitectura y el flujo de trabajo de Flux AWS activados.

donde:

  • Paso 1: Fusión mediante solicitud de extracción (PR). Un desarrollador confirma los cambios en los manifiestos de Kubernetes o en los gráficos de Helm almacenados en un repositorio de Git. Cuando el PR se ha revisado y fusionado con la rama principal, el estado deseado de la aplicación se actualiza en el control de código fuente.

  • Paso 2: Sincronización del repositorio. Flux se ejecuta dentro de un espacio de nombres dedicado en el clúster de EKS y monitorea continuamente el repositorio de Git configurado. Cuando detecta cambios, extrae las últimas actualizaciones para conciliar el estado declarado.

  • Paso 3: Implementación en el espacio de nombres de destino. Flux compara el estado deseado de Git con el estado activo del clúster. A continuación, aplica los cambios necesarios al espacio de nombres de la carga de trabajo de destino para que la aplicación se despliegue o actualice en consecuencia.