Guía Completa: Instalación de Kubernetes y ArgoCD

En esta guía detallada, aprenderemos cómo configurar un entorno completo de Kubernetes con ArgoCD, comenzando desde la configuración básica de Git hasta tener un cluster completamente funcional con GitOps implementado.

Prerequisitos

  • Sistema operativo Linux (Ubuntu/Debian recomendado)
  • Acceso de superusuario (sudo)
  • Terminal con acceso a Internet
  • Cuenta en GitHub/GitLab

1. Configuración de Git

Primero, necesitamos instalar y configurar Git en nuestro sistema. Ejecuta los siguientes comandos:

# Actualizar e instalar Git
sudo apt update
sudo apt install git

# Verificar la instalación
git --version

# Configurar credenciales globales
git config --global user.name "TuNombre"
git config --global user.email "tu.email@dominio.com"

# Generar clave SSH para GitHub
ssh-keygen -t ed25519 -C "tu.email@dominio.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

# Mostrar la clave pública para copiarla a GitHub
cat ~/.ssh/id_ed25519.pub

Después de generar tu clave SSH, debes agregarla a tu cuenta de GitHub en https://github.com/settings/keys

2. Instalación de ArgoCD

Una vez que tengamos Kubernetes funcionando, procedemos a instalar ArgoCD utilizando Helm:

# Instalar Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# Agregar el repositorio de Argo
helm repo add argo https://argoproj.github.io/argo-helm

# Crear namespace para ArgoCD
kubectl create namespace argocd

# Instalar ArgoCD
helm install argocd -n argocd argo/argo-cd

3. Configuración de Acceso a ArgoCD

Para acceder a la interfaz web de ArgoCD, necesitamos configurar el acceso. Hay dos opciones principales:

Opción 1: Port-Forward

# Obtener la contraseña inicial
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

# Configurar port-forward
kubectl port-forward service/argocd-server -n argocd 8080:443 --address="0.0.0.0"

Opción 2: NodePort Service

Para un acceso más permanente, podemos modificar el servicio de ArgoCD a NodePort:

apiVersion: v1
kind: Service
metadata:
  name: argocd-server
  namespace: argocd
spec:
  type: NodePort
  ports:
  - name: http
    port: 8080
    protocol: TCP
    targetPort: 8080
    nodePort: 30080
  selector:
    app.kubernetes.io/name: argocd-server

4. Instalación de CLI de ArgoCD

# Descargar e instalar CLI de ArgoCD
wget https://github.com/argoproj/argo-cd/releases/download/v2.6.7/argocd-linux-amd64
sudo mv argocd-linux-amd64 /usr/local/bin/argocd
chmod +x /usr/local/bin/argocd

# Login desde CLI
argocd login <IP-DEL-CLUSTER>:30080 --username admin --password <TU-PASSWORD> --insecure

Consideraciones de Seguridad

  • Cambia la contraseña por defecto después del primer acceso
  • Configura TLS para el acceso a la interfaz web
  • Implementa RBAC para controlar el acceso a los recursos
  • Mantén ArgoCD y Kubernetes actualizados con las últimas versiones de seguridad

Próximos Pasos

  • Configurar tu primer proyecto en ArgoCD
  • Implementar sincronización automática
  • Configurar notificaciones
  • Implementar políticas de backup

¿Necesitas ayuda con tu implementación de GitOps?

Como consultor DevOps especializado en Kubernetes y GitOps, puedo ayudarte a implementar estas tecnologías en tu organización de manera eficiente y segura.

Contáctame