Argo CD - 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.

Argo CD

Argo CD es una herramienta de entrega GitOps continua (CD) muy utilizada en Kubernetes que cumple con varios principios clave. GitOps

GitOps soporte

Área Capacidades de la herramienta

Configuración declarativa

Argo CD usa configuraciones declarativas que se almacenan en los repositorios de Git. El estado deseado de la aplicación y la infraestructura se define en los archivos YAML. Estas configuraciones describen lo que se debe implementar, no cómo implementarlo.

El sistema de control de versiones como única fuente de información

Los repositorios de Git son la única fuente de información fiable para todo el sistema. Todos los cambios en la aplicación y la infraestructura se realizan a través de Git. Esto garantiza un registro de auditoría completo y la posibilidad de volver a cualquier estado anterior.

Sincronización automatizada

Argo CD monitorea continuamente el repositorio de Git para detectar cambios. Cuando se detectan cambios, sincroniza automáticamente el estado real del clúster con el estado deseado definido en Git. Esto garantiza que el clúster siempre refleje el estado que se describe en el repositorio.

Nativo de Kubernetes

Argo CD está diseñado específicamente para entornos de Kubernetes. Aprovecha la naturaleza declarativa y los recursos personalizados de Kubernetes para gestionar las aplicaciones.

Recuperación automática y detección de desviaciones

Argo CD compara periódicamente el estado activo del clúster con el estado deseado en Git. Si detecta alguna desviación (diferencias entre el estado real y el deseado), puede corregir automáticamente estas discrepancias.

Soporte para múltiples clústeres y múltiples inquilinos

Argo CD puede gestionar varios clústeres de Kubernetes desde una sola instancia. Es compatible con la multitenencia, por lo que los diferentes equipos pueden gestionar sus aplicaciones de forma independiente.

Definición de aplicación

Las aplicaciones de Argo CD se definen mediante la CRD de aplicaciones (definición de recursos personalizada). Esto permite una forma nativa de Kubernetes de definir qué se debe implementar y cómo.

Separación del despliegue y el lanzamiento

Argo CD separa la distribución del código de su publicación para los usuarios. Esto se logra mediante diversas estrategias de despliegue, como blue/green los despliegues canarios.

Observabilidad y auditabilidad

Argo CD proporciona una interfaz de usuario web y una CLI para observar el estado de las aplicaciones y los clústeres. Todas las acciones se registran para proporcionar un registro de auditoría claro de los cambios y las implementaciones.

Seguridad y RBAC

Argo CD se integra con el control de acceso basado en roles (RBAC) de Kubernetes. Admite la integración del inicio de sesión único para la autenticación y la autorización.

Arquitectura conectable

Argo CD es compatible con varios sistemas de gestión de control de código fuente, gráficos de Helm, Kustomize y otros formatos de manifiesto de Kubernetes. Esta flexibilidad le permite adaptarse a diversos entornos y flujos de trabajo.

Entrega continua (CD)

Si bien Argo CD se centra en la entrega continua, se puede integrar con herramientas de integración continua (CI) para crear una CI/CD cartera completa.

Al cumplir con estos GitOps principios, Argo CD proporciona una forma sólida, escalable y segura de gestionar las implementaciones de Kubernetes. Garantiza que el estado operativo del sistema esté siempre sincronizado con el estado deseado definido en el repositorio de Git y promueve la coherencia, la fiabilidad y la facilidad de administración en entornos complejos de Kubernetes.

Para ver los escenarios y requisitos que Argo CD puede abordar, consulta los casos de uso de Argo CD 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 Argo CD.

Arquitectura

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

La arquitectura y el flujo de trabajo de Argo CD están activados. AWS

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. Argo CD se ejecuta dentro de un espacio de nombres dedicado (argocd) 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. Argo CD 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. Esto incluye la administración de los recursos de Kubernetes, como las implementaciones, los servicios y los secretos ConfigMaps, para mantener la coherencia de los clústeres con la fuente de información de Git.