Key Takeaways
- ✓Helm is the official package manager for Kubernetes
- ✓A Helm chart encapsulates all YAML manifests for an application
- ✓'Three essential commands: helm install, upgrade, rollback'
This Helm Kubernetes beginner tutorial guides you from installation to your first deployment in less than 30 minutes. Helm, Kubernetes' package manager, simplifies deploying complex applications by encapsulating YAML manifests in reusable and versioned charts. If you're an infrastructure engineer, Cloud operations engineer, or system administrator, this skill accelerates your deployment workflows.
TL;DR: Helm allows you to deploy Kubernetes applications with a single command (helm install), update them (helm upgrade), and roll them back (helm rollback). It's the standard tool used by 70% of Kubernetes organizations.
Professionals who want to go further take the LFS458 Kubernetes Administration training.
What is Helm and why use it?
Helm is Kubernetes' official package manager. A Helm chart is a collection of YAML files that define a complete Kubernetes application: Deployments, Services, ConfigMaps, Secrets, Ingress.
According to Orca Security 2025, 70% of organizations use Helm in their cloud environments. This massive adoption is explained by three advantages:
| Advantage | Without Helm | With Helm |
|---|---|---|
| Deployment | kubectl apply -f *.yaml (manual order) | helm install (automated) |
| Update | Manual manifest modification | helm upgrade with values |
| Rollback | Manual search and restoration | helm rollback to version N |
| Reproducibility | Variable depending on operator | Guaranteed by the chart |
Key takeaway: Helm standardizes deployment and reduces human errors through abstraction and reproducibility.
How to install Helm? Helm Kubernetes beginner tutorial
Installation on different OS
# macOS with Homebrew
brew install helm
# Linux (official script)
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# Windows with Chocolatey
choco install kubernetes-helm
# Verification
helm version
# version.BuildInfo{Version:"v3.14.2", ...}
Initial configuration
Helm 3 doesn't require a server component (Tiller was removed). Simply ensure kubectl is configured for your cluster:
# Verify cluster connection
kubectl cluster-info
# Add the official repository
helm repo add stable https://charts.helm.sh/stable
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
To configure your local environment, consult Install Kubernetes locally: complete guide with Minikube, Kind and K3d.
How to deploy your first application with Helm?
Search for a chart
# Search in configured repos
helm search repo nginx
# Search on Artifact Hub (public registry)
helm search hub wordpress
Install a chart
# Basic installation
helm install my-nginx bitnami/nginx
# Installation with dedicated namespace
helm install my-nginx bitnami/nginx --namespace web --create-namespace
# Installation with custom values
helm install my-nginx bitnami/nginx \
--set service.type=ClusterIP \
--set replicaCount=3
Verify the deployment
# List releases
helm list
# Detailed status
helm status my-nginx
# View created resources
kubectl get all -l app.kubernetes.io/instance=my-nginx
Key takeaway: A Helm release is an instance of a chart deployed in the cluster. You can have multiple releases of the same chart.
How to customize a Helm deployment?
The values.yaml file
Each chart contains a values.yaml file defining default values. Check available values:
# Display default values
helm show values bitnami/nginx > values.yaml
# Install with a custom values file
helm install my-nginx bitnami/nginx -f my-values.yaml
Customization example
# my-values.yaml
replicaCount: 3
image:
tag: "1.25.3"
service:
type: LoadBalancer
port: 80
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
ingress:
enabled: true
hostname: app.example.com
These configurations align with practices described in the Kubernetes Memo: objects, API resources and shortcuts.
How to update and rollback?
Update a release
# Modify values
helm upgrade my-nginx bitnami/nginx --set replicaCount=5
# Or with a values file
helm upgrade my-nginx bitnami/nginx -f updated-values.yaml
# View revision history
helm history my-nginx
Rollback to a previous version
# Rollback to revision 1
helm rollback my-nginx 1
# Check status
helm status my-nginx
Instant rollback offers security that manual deployments cannot match.
How to create your own chart?
Chart structure
# Create a new chart
helm create my-app
# Generated structure
my-app/
├── Chart.yaml # Chart metadata
├── values.yaml # Default values
├── templates/ # Kubernetes templates
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ └── _helpers.tpl # Helper functions
└── charts/ # Dependencies
Basic template
# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "my-app.fullname" . }}
labels:
{{- include "my-app.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "my-app.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "my-app.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: {{ .Values.service.port }}
Key takeaway: Helm templates use Go templates. Variables between {{ }} are replaced by values.yaml values.
Debugging Helm: resolving common errors
Preview manifests
# Render templates without installing
helm template my-nginx bitnami/nginx -f values.yaml
# Debug mode
helm install my-nginx bitnami/nginx --dry-run --debug
Common errors
| Error | Cause | Solution |
|---|---|---|
Error: INSTALLATION FAILED | Invalid manifests | Use --dry-run --debug |
cannot re-use a name | Release already exists | Uninstall or choose another name |
context deadline exceeded | Network timeout | Check cluster connection |
For in-depth pod diagnosis, consult Debug a pod in CrashLoopBackOff: causes, diagnosis and solutions.
Essential Helm commands
# Repo management
helm repo add [name] [url]
helm repo update
helm repo list
# Search
helm search repo [keyword]
helm search hub [keyword]
# Installation and management
helm install [release] [chart]
helm upgrade [release] [chart]
helm rollback [release] [revision]
helm uninstall [release]
# Inspection
helm list
helm status [release]
helm history [release]
helm get values [release]
Helm Kubernetes beginner tutorial: getting started checklist
| Step | Command | Validation |
|---|---|---|
| Install Helm | brew install helm | helm version |
| Add repo | helm repo add bitnami ... | helm repo list |
| First install | helm install test bitnami/nginx | helm list |
| Customize | -f values.yaml | helm get values |
| Update | helm upgrade | helm history |
| Clean up | helm uninstall test | helm list |
For deeper Kubernetes Deployment and Production, Helm is an essential tool.
Take action: deploy your first chart
This Helm Kubernetes beginner tutorial gave you the basics to install, configure, and manage Kubernetes applications. According to the CNCF Annual Survey 2025, 82% of organizations run Kubernetes in production. Mastering Helm positions you among professionals capable of deploying quickly and reliably.
Install Helm now, deploy an nginx chart, then customize it with your own values. To go further:
- Discover Kubernetes: Kubernetes Fundamentals (1 day)
- Administer clusters: LFS458 Kubernetes Administration (4 days)
- Develop on Kubernetes: LFD459 Kubernetes for Developers (3 days)
Consult Deploy your first Kubernetes pod in 15 minutes for fundamentals before Helm, or explore Kubernetes Tutorials and Practical Guides.
Contact our advisors to organize your training.