¿Qué es ArgoCD?
Es una herramienta open source de entrega continua (Continuous Delivery) diseñada para aplicaciones desplegadas en Kubernetes. Su principal función es sincronizar automáticamente el estado deseado de las aplicaciones definidas en repositorios Git con el estado real del clúster, implementando así el paradigma GitOps. Esto permite que la infraestructura y las aplicaciones se gestionen como código, con control de versiones y despliegues automatizados.
Beneficios
- Automatización de despliegues: detecta cambios en el repositorio Git y sincroniza automáticamente el clúster.
- Git como fuente única de verdad: Control total sobre el estado de las aplicaciones, con trazabilidad y auditoría.
- Visualización clara: Interfaz gráfica que muestra el estado de las aplicaciones y métricas.
- Gestión de múltiples clusters: Soporta la administración de aplicaciones en varios clusters Kubernetes desde una única instancia.
- Rollback sencillo: Implementación rápida de versiones anteriores en caso de errores.
Requisitos Previos
Antes de comenzar, asegúrate de contar con:
- Un clúster Kubernetes en funcionamiento (local como Minikube, o en la nube como GKE, EKS, AKS).
kubectl
configurado para acceder al clúster.- Acceso a un repositorio Git donde estén definidas las configuraciones Kubernetes (manifiestos YAML, Helm charts o Kustomize).
- Helm (opcional, para instalar ).
Instalación
Método 1: Instalación usando kubectl
Ejecuta el siguiente comando para instalar ArgoCD en el namespace argocd
:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Esto crea todos los recursos necesarios: deployments, servicios y configuraciones.
Método 2: Instalación con Helm
Si prefieres Helm, agrega el repositorio y luego instala:
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
helm install argocd argo/argo-cd -n argocd –create-namespace
Acceso a la Interfaz Web de ArgoCD
Por defecto, el servidor ArgoCD expone un servicio interno. Para acceder a la UI:
kubectl port-forward svc/argocd-server -n argocd 8080:443
🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴
Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semanaLuego, abre en el navegador: https://localhost:8080
Credenciales por defecto
- Usuario:
admin
- Contraseña: Obténla ejecutando:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Se recomienda cambiar esta contraseña luego de iniciar sesión.
Configurar una Aplicación
Una «Aplicación» en ArgoCD es una definición que conecta el repositorio Git con un namespace dentro del clúster.
Crear una aplicación desde la CLI
Ejemplo para desplegar un proyecto desde Git:
argocd app create my-app
–repo https://github.com/miusuario/mi-repositorio.git
–path k8s-manifests
–dest-server https://kubernetes.default.svc
–dest-namespace default
Sincronizar la aplicación
Para desplegar la aplicación sincronizando el estado:
argocd app sync my-app
Ver el estado de la aplicación
argocd app get my-app
Implementación con GitOps
Cada vez que actualices los manifiestos YAML o charts en el repositorio Git, detectará el cambio y actualizará el clúster automáticamente o mediante sincronización manual según la configuración.
Gestión Avanzada
- Automatización completa: Puedes configurar sincronización automática con opción para auto-rollback.
- Multi cluster: Registrar varios clusters con
argocd cluster add
. - Notificaciones: Integrar con Slack, email u otros para recibir alertas.
- RBAC: Configurar roles y permisos para equipos.
conclusión
Si quieres profundizar y conviértete en un profesional en temas de desarrollo de software, te recomiendo el Bootcamp en DevOps & Cloud Computing de KeepCoding.
Es una potente herramienta de entrega continua basada en GitOps para Kubernetes, que automatiza la sincronización entre el repositorio Git y el clúster. Su instalación sencilla, interfaz intuitiva y soporte multi cluster lo hacen ideal para equipos que buscan mejorar la gestión y despliegue continuo de sus aplicaciones.
Esperamos que esta guía te haya proporcionado una base sólida para comenzar a implementar entrega continua con ArgoCD en tus entornos de Kubernetes. Dominar estas herramientas es esencial para cualquier equipo que busque optimizar sus despliegues y mantener la agilidad en la entrega de software.
Para aquellos que deseen profundizar aún más y explorar la documentación oficial, patrones avanzados y la comunidad detrás de esta poderosa herramienta, la fuente más confiable y completa es, sin duda, la documentación oficial de ArgoCD.
No dudes en explorar la documentación oficial de para obtener información más detallada y recursos adicionales! ArgoCD.