What is Helm and how does it simplify Kubernetes application deployment?
Helm is the package manager for Kubernetes, making it easy to define, install, and upgrade complex Kubernetes applications.
Core Concepts
Charts
A Helm chart is a collection of files that describe Kubernetes resources. It contains:
- templates/: Kubernetes manifests with Go template syntax
- values.yaml: Default configuration values
- Chart.yaml: Chart metadata (name, version, description)
- charts/: Dependencies
Releases
When a chart is installed, a release is created. Multiple releases of the same chart can run in the same cluster with different configurations.
Repositories
Charts are stored in and shared via Helm repositories (e.g., ArtifactHub, Bitnami).
Common Commands
# Add a repository
helm repo add bitnami https://charts.bitnami.com/bitnami
# Search charts
helm search repo nginx
# Install a chart
helm install my-nginx bitnami/nginx -f custom-values.yaml
# Upgrade a release
helm upgrade my-nginx bitnami/nginx --set replicas=3
# Rollback
helm rollback my-nginx 1
# List releases
helm list -ABenefits
- Templating: Reuse manifests with different values per environment
- Version management: Track chart versions and rollback easily
- Dependency management: Bundle related charts together
- Release lifecycle: Install, upgrade, rollback, uninstall with single commands
Helm 3 vs Helm 2
Helm 3 removed Tiller (the server-side component), making it more secure by using Kubernetes RBAC directly and storing release state as Kubernetes Secrets.