Tutorial de Helm: Gestión de aplicaciones en Kubernetes
¿Qué es Helm?
Helm es el gestor de paquetes para Kubernetes. Permite definir, instalar y actualizar aplicaciones complejas de Kubernetes mediante paquetes reutilizables llamados charts. Piense en él como apt o brew, pero para Kubernetes.
Conceptos clave
| Término | Descripción |
|---|---|
| Chart | Paquete con todas las definiciones de recursos de Kubernetes para una aplicación |
| Release | Instancia en ejecución de un chart instalado en el clúster |
| Repository | Lugar donde se almacenan y comparten los charts |
| Values | Parámetros de configuración que personalizan un chart en el momento de la instalación |
Instalación
# macOS
brew install helm
# Linux
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Verifique la instalación:
helm version
Añadir un repositorio de charts
Añada el repositorio de Bitnami, uno de los más populares para charts listos para producción:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
Busque charts disponibles:
helm search repo nginx
Instalar un chart
Instale NGINX desde Bitnami:
helm install my-nginx bitnami/nginx
El formato es helm install <nombre-release> <repo/chart>. Helm crea todos los recursos de Kubernetes necesarios y registra el estado del release.
Liste los releases en ejecución:
helm list
Personalizar con valores
Cada chart expone valores configurables. Vea los valores por defecto:
helm show values bitnami/nginx
Sobrescriba los valores al instalar con --set o un archivo de valores:
# Sobrescritura en línea
helm install my-nginx bitnami/nginx --set replicaCount=2
# Sobrescritura con archivo
helm install my-nginx bitnami/nginx -f custom-values.yaml
Ejemplo de custom-values.yaml:
replicaCount: 2
service:
type: ClusterIP
resources:
requests:
cpu: 100m
memory: 128Mi
Actualizar un release
Aplique cambios de configuración o una nueva versión del chart a un release existente:
helm upgrade my-nginx bitnami/nginx --set replicaCount=3
Use --install para instalar si aún no existe (patrón upsert):
helm upgrade --install my-nginx bitnami/nginx -f custom-values.yaml
Revertir cambios
Si algo va mal, revierte a una revisión anterior:
# Ver historial de revisiones
helm history my-nginx
# Revertir a la revisión 1
helm rollback my-nginx 1
Desinstalar un release
helm uninstall my-nginx
Esto elimina todos los recursos de Kubernetes asociados al release. Añada --keep-history si desea conservar el registro del release para auditoría.
Crear su propio chart
Genere la estructura base de un chart:
helm create my-app
Esto produce el siguiente layout estándar:
my-app/
├── Chart.yaml # Metadatos del chart (nombre, versión, descripción)
├── values.yaml # Valores de configuración por defecto
└── templates/ # Plantillas de manifiestos de Kubernetes
├── deployment.yaml
├── service.yaml
└── _helpers.tpl # Fragmentos de plantillas reutilizables
Si deseas apoyarme, invítame un café.