Implementar aplicaciones en Kubernetes puede ser complejo, especialmente para los recién llegados. Ingresa Argo CD, una herramienta declarativa impulsada por GitOps diseñada para automatizar despliegues de aplicaciones en Kubernetes. En este taller, aprenderás cómo configurar y utilizar Argo CD para implementar aplicaciones de manera fluida, con un paso a paso creado para principiantes completos.
Lo Que Aprenderás
- Instalar y configurar Argo CD.
- Implementar aplicaciones utilizando principios de GitOps.
- Monitorear despliegues y solucionar problemas.
- Revertir y gestionar versiones de aplicaciones.
- Proteger Argo CD para uso en producción.
¿Por Qué Argo CD?
Argo CD simplifica la gestión de aplicaciones en Kubernetes al sincronizar continuamente tu clúster con los manifiestos definidos en repositorios de Git. Los beneficios incluyen:
- Administración Declarativa: Define el estado deseado del clúster en Git.
- Entrega Continua: Automatiza despliegues con sincronización en tiempo real.
- Control de Versiones: Revierte a versiones anteriores con facilidad.
Requisitos previos
Antes de comenzar, asegúrate de tener:
- Un clúster de Kubernetes (usa Minikube, Kind o un servicio gestionado como GKE, EKS, AKS).
kubectl
instalado y configurado para conectarse a tu clúster.- Una cuenta de GitHub o GitLab para alojar tus manifiestos de Kubernetes.
- Conocimientos básicos de la sintaxis YAML (se cubrirá en este taller si eres nuevo).
Guía paso a paso
1. Configuración de un clúster de Kubernetes
Paso 1: Instalar Minikube
Si no tienes un clúster, utiliza Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
Paso 2: Iniciar Minikube
Ejecuta el comando minikube start
después de instalar Minikube en tu sistema:
minikube start
Paso 3: Verificar el clúster
Confirma que el clúster está en ejecución:
kubectl cluster-info
kubectl get nodes
2. Instalación de Argo CD
Paso 1: Crear un espacio de nombres
Argo CD se ejecuta en su propio espacio de nombres para aislarlo:
kubectl create namespace argocd
Paso 2: Instalar Argo CD
Aplica los manifiestos oficiales para instalar Argo CD:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Paso 3: Verificar la instalación
Verifica los pods de Argo CD:
kubectl get pods -n argocd
3. Acceso a la interfaz de usuario de Argo CD
Paso 1: Exponer Argo CD
Expone el argocd-server
en tu máquina local:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Paso 2: Obtener Credenciales de Administrador
Buscar la contraseña de administrador predeterminada:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
Paso 3: Iniciar sesión en la interfaz de usuario
- Abre https://localhost:8080 en tu navegador.
- Inicia sesión con:
- Nombre de usuario: admin
- Contraseña: Obtenida en el paso anterior.
4. Conectar Argo CD a tu Repositorio Git
Paso 1: Preparar un Repositorio Git
- Crea un repositorio Git (por ejemplo, en GitHub).
- Agrega tus manifiestos de Kubernetes al repositorio. Utiliza este ejemplo de
deployment.yaml
:
apiVersion apps/v1
kind Deployment
metadata
name nginx-deployment
labels
app nginx
spec
replicas2
selector
matchLabels
app nginx
template
metadata
labels
app nginx
spec
containers
name nginx
image nginx1.19
ports
containerPort80
Paso 2: Agregar Repositorio a Argo CD
Desde la interfaz de usuario:
- Dirígete a Configuración > Repositorios.
- Agrega la URL de tu repositorio Git y los detalles de autenticación (SSH o HTTPS).
O, usa la CLI:
argocd repo add <REPO_URL> --username <USERNAME> --password <PASSWORD>
5. Implementar tu Primera Aplicación
Paso 1: Crear una Aplicación
En la interfaz de usuario de Argo CD:
- Haz clic en Nueva Aplicación.
- Llene lo siguiente:
- Nombre de la aplicación: nginx-app
- Proyecto: default
- URL del repositorio: URL de su repositorio Git
- Ruta: Ruta al
deployment.yaml
- URL del clúster:
https://kubernetes.default.svc
- Espacio de nombres: default
Paso 2: Sincronizar la aplicación
Después de crear la aplicación:
- Haga clic en Sincronizar en la interfaz de usuario de Argo CD.
- Vea cómo la aplicación se implementa en su clúster de Kubernetes.
6. Automatización de implementaciones
Paso 1: Habilitar la sincronización automática
Habilitar la sincronización continua:
argocd app set nginx-app --sync-policy automated
Paso 2: Probar cambios
- Modifique el
deployment.yaml
en Git. - Envíe los cambios al repositorio.
- Argo CD detectará los cambios y los sincronizará automáticamente en el clúster.
7. Monitoreo y solución de problemas
Paso 1: Monitorear la salud de la aplicación
En la interfaz de usuario, revise:
- Saúde: Indica se a aplicação está funcionando conforme o esperado.
- Status de Sincronização: Garante que o estado do cluster corresponda ao Git.
Passo 2: Visualizar Logs
Se algo der errado:
kubectl logs -n argocd <POD_NAME>
Passo 3: Reverter Alterações
Reverta para um estado anterior:
argocd app rollback nginx-app <REVISION>
8. Segurança do Argo CD
Passo 1: Alterar a Senha Padrão do Administrador
Altere a senha padrão do administrador usando o comando argocd account update-password
:
argocd account update-password
Passo 2: Integrar SSO
Para ambientes de produção, integre-se com soluções de Logon Único (SSO) como GitHub ou LDAP.
Melhores Práticas do GitOps
- Estratégias de Ramificação: Use ramos separados para desenvolvimento, staging e produção.
- Revisões de Código: Exija revisões de pares para alterações de manifesto.
- Logs de Auditoria: Revise regularmente os logs do Argo CD para conformidade e depuração.
Conclusão
O Argo CD oferece uma forma amigável para iniciantes, mas poderosa, de gerenciar implantações do Kubernetes usando os princípios do GitOps. Este workshop o equipa com as habilidades para implantar, monitorar e gerenciar aplicativos de forma eficiente. Ao aderir a essas práticas, você está bem encaminhado para dominar a entrega contínua do Kubernetes.
Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd