¿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érminoDescripción
ChartPaquete con todas las definiciones de recursos de Kubernetes para una aplicación
ReleaseInstancia en ejecución de un chart instalado en el clúster
RepositoryLugar donde se almacenan y comparten los charts
ValuesPará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é.