DEV Community

Alex Rodríguez for AWS Español

Posted on • Edited on

🚀Gestiona tus aplicaciones en EKS con ArgoCD 🚀

Como ya venimos avisando hace un tiempo #AwTwins nos lanzamos a crear una serie de como gestionar clústers EKS.

Si has trabajado en varias empresas, probablemente habrás notado que cada una gestiona las aplicaciones en los clústers a su manera, algunas utilizan unos con pipelines que hacen un kubectl apply, otros prefieren hacer un helm install a mano, actualizaciones manuales y un largo... Pero nosotros que somos fans de Gitops, siempre buscamos facilitarnos y dar más control y autonomía a los equipos y clústers. Por eso hoy venimos a hablarte de ArgoCD.

¿Y qué es ArgoCD?

Es una herramienta declarativa de Gitops hecha para gestionar aplicaciones en Kubernetes de forma continua. La idea es que Argocd se encargue de mantener sincronizado el estado real de las aplicaciones y recursos en el clúster con lo que existe en GIT.

Características principales:

  • Modelo GitOps: El estado de las aplicaciones se gestiona a través de repositorios GIT.

  • Automatización de despliegues: Despliegues automáticos o manuales,flexibilidad ante todo!

  • Rollbacks y sincronización automática: Argocd puede identificar automáticamente las diferencias entre el estado real de los recursos en el clúster y el estado deseado en GIT y permite realizar rollbacks o sincronizaciones automáticas cuando sea necesario.

  • Control de acceso con RBAC: ArgoCD ofrece un control granular de acceso, asegurando que diferentes equipos tengan acceso solo a las aplicaciones y entornos que les corresponden. En otras palabras, tocas lo que tienes que tocar.

  • Soporte multiple formato: ArgoCD es compatible con Helm Charts, Kustomize,YAML, Jsonnet. Menos problemas!

  • Integración continua (CI/CD): Se integra fácilmente con pipelines CI/CD.

  • Interfaz gráfica: Permitiendo ver el estado de las aplicaciones en el cúster y su sincronización en el repositorio GIT en tiempo real.

Patrones de implementación de ArgoCD en EKS

Dependiendo de la escala y la complejidad de tu infraestructura, puedes elegir diferentes patrones para implementar ArgoCD en tu entorno de Amazon EKS.

1. Una instancia de ArgoCD gestionando todos los clústers

Este patrón implica utilizar una sola instancia de ArgoCD para gestionar múltiples clústers de Kubernetes. Instalas un argocd en un clúster "master" y desde ahí te encargas de desplegar apps en todos los otros clústers.

Ventajas:

  • Centralización: Tienes una sola interfaz desde donde puedes gestionar múltiples clústers.

  • Menor trabajo operativo: Solo una instancia de ArgoCD que mantener, lo que reduce costes operacionales.

  • Facilidad de monitoring: Todos los despliegues están visibles y accesibles desde un solo panel de control.

ArgoCD_multicluster

2. Una instancia de ArgoCD por cada clúster

En este caso, cada clúster de Kubernetes tiene su propia instancia de ArgoCD independiente. Esto es lo que podríamos llamar un patrón de Single-Tenant, ya que cada instancia está aislada y no interactúa con otras instancias de ArgoCD.

Ventajas:

  • Aislamiento: Cada clúster y su ArgoCD están completamente aislados, por lo que los problemas en un clúster no afectarán a los demás.

  • Escalabilidad: Cada clúster tiene su propia instancia de ArgoCD, por lo que el crecimiento en el número de clústers o aplicaciones no impacta en el rendimiento de otras instancias.

  • Seguridad: Puedes aplicar configuraciones personalizadas de seguridad para cada clúster y su ArgoCD.

Argocd_x_cluster

3. Un ArgoCD que despliega otros ArgoCDs.

¿Que fué primero el huevo o la gallina? En este caso, un ArgoCD "master" se encarga de gestionar y desplegar otras instancias de ArgoCD en incluso en el mismo. Esta estrategia es útil cuando tienes un entorno altamente distribuido con múltiples clústers que necesitan su propia instancia de ArgoCD, que deben ser gestionados desde un punto central.

Ventajas:

  • Escalabilidad: Permite gestionar y desplegar muchas instancias de ArgoCD desde un único lugar, lo que es útil en grandes organizaciones con cientos de clústers.

  • Descentralización: Cada clúster tiene su propio ArgoCD, pero puedes automatizar y coordinar su gestión desde el ArgoCD maestro.

  • Facilita el gobierno: Puedes aplicar políticas globales desde el ArgoCD "master" mientras permites personalización a nivel de clúster.

Full_Argocd

Conclusión:

Cada uno de estos patrones de implementación de ArgoCD tiene ventajas y desventajas específicas, y la elección depende del tamaño de la infraestructura y los requisitos operativos de tu organización.

Próximo episodio: Implementaremos ArgoCD en un clúster de Amazon EKS utilizando Terraform, lo que nos permitirá desplegar una primera versión funcional de ArgoCD y comenzar a jugar con sus capacidades.

🚨 Aquí venimos a jugar, así que ¡Keep Ready! 🚨

Top comments (0)