Despliegue continuo en Kubernetes con Helm
Categoría: Kubernetes
Helm es el gestor de paquetes de Kubernetes. Aprende a usarlo para automatizar despliegues continuos, gestionar configuraciones y mantener versiones de tus aplicaciones en clústeres.
¿Qué es Helm y por qué deberías usarlo?
Helm es una herramienta que facilita el despliegue de aplicaciones en Kubernetes mediante plantillas reutilizables llamadas charts. Si Docker es el contenedor y Kubernetes el orquestador, Helm es el equivalente a un sistema de gestión de paquetes como apt o npm.
Con Helm puedes:
- Versionar y reutilizar configuraciones de despliegue
- Automatizar despliegues continuos en entornos como staging y producción
- Reducir errores humanos al evitar duplicar ficheros YAML
- Hacer rollback a versiones anteriores si algo falla
Paso 1: Instalar Helm
Helm puede instalarse fácilmente desde el sitio oficial o con Homebrew:
brew install helm
helm versionPaso 2: Crear un Chart personalizado
Usa el comando helm create para generar la estructura base de un chart:
helm create mi-appEsto generará una estructura como esta:
mi-app/
├── charts/
├── templates/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ingress.yaml
├── values.yaml
└── Chart.yamlEl archivo values.yaml contiene los valores de configuración que puedes parametrizar. El resto de archivos usan la sintaxis de Go templates para interpolar esos valores.
Paso 3: Instalar el chart en Kubernetes
Si ya tienes tu clúster de Kubernetes funcionando (minikube, kind, GKE, EKS, etc.), puedes instalar tu chart con:
helm install mi-app ./mi-appTambién puedes pasar valores personalizados desde otro archivo:
helm install mi-app ./mi-app -f values.prod.yamlPaso 4: Actualizar la app y hacer despliegues continuos
Cuando actualices el chart o tus valores, solo necesitas ejecutar:
helm upgrade mi-app ./mi-appEsto aplica los cambios sin eliminar el release actual, lo que permite un ciclo de despliegue continuo sin downtime (siempre que tus containers estén correctamente configurados con probes y estrategias de rolling update).
Paso 5: Automatizar con GitHub Actions
Puedes usar GitHub Actions para desplegar automáticamente cuando se haga push a main:
name: Deploy to Kubernetes
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: azure/setup-helm@v3
- run: |
helm upgrade --install mi-app ./mi-app -f values.prod.yaml
Este workflow presupone que tienes acceso configurado a tu clúster mediante un kubeconfig seguro almacenado como secreto en el repositorio.
Consejos avanzados
- ✅ Usa
helm diffpara previsualizar los cambios antes de aplicarlos - 📦 Publica tus charts en tu propio repositorio Helm privado
- 🧪 Integra tests de despliegue y validación de templates
- 🚀 Combina Helm con ArgoCD para despliegue continuo declarativo
Conclusión
Helm se ha convertido en el estándar de facto para desplegar aplicaciones en Kubernetes. Su potencia reside en la reutilización de plantillas, la capacidad de rollback, y su integración natural con pipelines de CI/CD. Si trabajas con Kubernetes, dominar Helm es casi obligatorio.
Con unas pocas líneas de configuración puedes automatizar todo el ciclo de despliegue, desde desarrollo hasta producción.





