Skip to main content

Command Palette

Search for a command to run...

Introducción a ArgoCD: La Herramienta de CD de Código Abierto para Kubernetes

Updated
4 min read
Introducción a ArgoCD: La Herramienta de CD de Código Abierto para Kubernetes

En el panorama actual del desarrollo de software, la entrega continua (CD) se ha convertido en una práctica esencial para garantizar que las aplicaciones se implementen de manera rápida y segura. ArgoCD es una de las herramientas de CD más populares y poderosas disponibles hoy en día, especialmente diseñada para trabajar con Kubernetes. En este artículo, exploraremos qué es ArgoCD, por qué es importante utilizarlo, los beneficios que ofrece, cómo instalarlo en tu clúster de EKS y sus componentes principales.

¿Qué es ArgoCD?

ArgoCD es una herramienta de entrega continua declarativa y nativa de Kubernetes. Su propósito principal es mantener los estados deseados de las aplicaciones en Kubernetes, asegurando que el estado actual del clúster coincida con el estado deseado definido en un repositorio de Git. Esto se logra mediante la sincronización automática y manual, lo que permite a los equipos de desarrollo implementar, gestionar y monitorizar aplicaciones de manera eficiente y confiable.

ArgoCD sigue el enfoque de GitOps, donde la infraestructura y las aplicaciones se describen como código en un repositorio de Git. Esta práctica no solo proporciona una mayor transparencia y control sobre los cambios, sino que también mejora la colaboración entre los equipos de desarrollo y operaciones.

Para más detalles sobre qué es ArgoCD, puedes consultar este post en EKS Workshop.

Componentes Principales de ArgoCD

ArgoCD está compuesto por tres componentes principales:

  • API Server: Expone la API para la WebUI, CLI y sistemas CI/CD.

  • Repository Server: Servicio interno que mantiene una caché local del repositorio de Git que contiene los manifiestos de la aplicación.

  • Application Controller: Controlador de Kubernetes que controla y monitoriza las aplicaciones continuamente y compara el estado actual en vivo con el estado objetivo deseado (especificado en el repositorio). Si se detecta un estado "OutOfSync", tomará acciones correctivas.

¿Por Qué es Importante Utilizar ArgoCD?

ArgoCD es importante en la actualidad por varias razones:

  1. Automatización: ArgoCD automatiza el proceso de implementación, reduciendo el esfuerzo manual y minimizando los errores humanos.

  2. Consistencia: Garantiza que el estado de las aplicaciones en el clúster de Kubernetes siempre coincida con el estado definido en el repositorio de Git.

  3. Transparencia: Al utilizar Git como la fuente de verdad, todos los cambios en la infraestructura y las aplicaciones son rastreables y auditables.

  4. Facilidad de Uso: ArgoCD ofrece una interfaz de usuario intuitiva y fácil de usar, así como una API que permite integraciones con otras herramientas y servicios.

  5. Escalabilidad: Es capaz de gestionar aplicaciones complejas y de gran escala en múltiples clústeres de Kubernetes.

Beneficios de ArgoCD

  • Despliegue Declarativo: Utiliza manifiestos de Kubernetes para describir el estado deseado de las aplicaciones.

  • Sincronización Automática: ArgoCD puede detectar y sincronizar automáticamente las diferencias entre el estado deseado y el actual.

  • Integración Continua: Compatible con herramientas de CI/CD, permitiendo un flujo continuo desde el desarrollo hasta la producción.

  • Gestión de Secretos: Soporta la integración con herramientas de gestión de secretos como HashiCorp Vault.

  • Monitoreo y Notificaciones: Proporciona monitoreo en tiempo real del estado de las aplicaciones y notificaciones sobre cualquier discrepancia o error.

Cómo Instalar ArgoCD en un Clúster de EKS

A continuación, se presentan los pasos para instalar ArgoCD en un clúster de Amazon EKS y configurar la sincronización con un repositorio de manifiestos de GitHub. Para una guía detallada, puedes seguir este post en Medium.

Paso 1: Configurar el Clúster de EKS

Primero, asegúrate de tener un clúster de EKS configurado y funcionando. Puedes crear un clúster de EKS utilizando la consola de AWS, la CLI de AWS o herramientas como eksctl.

Paso 2: Instalar ArgoCD

1- Instalar el CLI de ArgoCD:

sudo curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
sudo chmod +x /usr/local/bin/argocd

2- Crear el Namespace para ArgoCD:

kubectl create namespace argocd

3- Instalar ArgoCD utilizando Manifiestos de Kubernetes:

alias k=kubectl
k apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

4- Ver los pods creados:

kubectl get pods -n argocd

5- Exponer el Servicio ArgoCD Server:

k port-forward svc/argocd-server 8080:443 -n argocd

6- Obtener credenciales para acceso web:

k get secrets -n=argocd
k get secret argocd-initial-admin-secret -n argocd
k get secret argocd-initial-admin-secret -n argocd -o yaml
echo the-value-of-the-encoded-password | base64 --decode

ArgoCD es una herramienta poderosa y flexible que facilita la implementación continua en Kubernetes. Su enfoque declarativo y su integración con GitOps lo convierten en una opción ideal para equipos DevOps que buscan mejorar la eficiencia y la confiabilidad en sus procesos de entrega continua. Siguiendo los pasos anteriores, puedes instalar y configurar ArgoCD en tu clúster de EKS, y comenzar a aprovechar sus numerosos beneficios.

¡Esperamos que este artículo te haya sido útil para entender y empezar a utilizar ArgoCD en tus proyectos!

More from this blog

B

Blog de CloudAcademy

80 posts