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