If you’re diving into Kubernetes, you’ve likely heard of Helm, the Kubernetes package manager. Helm simplifies managing and deploying applications on Kubernetes by using reusable, version-controlled charts. Whether you’re a beginner or looking to streamline your Kubernetes workflows, this guide will walk you through installing Helm, creating a simple Helm deployment, and answering common FAQs.

What Is Helm?

Think of Helm as the “apt-get” or “yum” for Kubernetes. Instead of writing lengthy YAML files for your Kubernetes resources, Helm allows you to define everything in reusable templates called charts. Helm makes deploying, upgrading, and managing applications on Kubernetes faster and more organized.


How to Install Helm

Getting started with Helm is simple. Follow these steps to install Helm on your system:

1. Download Helm

Visit the Helm releases page on GitHub and download the binary compatible with your operating system.

2. Install Helm

For Linux, macOS, or Windows using WSL, use these commands:

  • macOS
brew install helm
  • Linux
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
  • Windows

Use Chocolatey or Scoop:

choco install kubernetes-helm

3. Verify the Installation

After installation, confirm that Helm is set up correctly:

helm version

If Helm is installed, it will display the version and build information.


Creating a Simple Helm Deployment

Let’s create and deploy a basic Helm chart to see how it works in action.

1. Create a New Chart

Run the following command to create a Helm chart named mychart:

helm create mychart

This generates a folder structure like:

mychart/
├── charts/
├── templates/
├── values.yaml
├── Chart.yaml
├── .helmignore

2. Understand the Files

  • Chart.yaml: Contains metadata about your chart (name, version, description).
  • values.yaml: Default configurations for the chart.
  • templates/: Contains YAML templates for Kubernetes resources.

3. Modify the Deployment Template

Go to mychart/templates/deployment.yaml and customize the template to define your application. For example:

apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.app.name }}
labels:
app: {{ .Values.app.name }}
spec:
replicas: {{ .Values.app.replicas }}
selector:
matchLabels:
app: {{ .Values.app.name }}
template:
metadata:
labels:
app: {{ .Values.app.name }}
spec:
containers:
- name: {{ .Values.app.name }}
image: {{ .Values.app.image }}
ports:
- containerPort: {{ .Values.app.port }}

4. Define Values in values.yaml

Update the values.yaml file with default values

app:
name: myapp
replicas: 2
image: nginx
port: 80

5. Deploy the Chart

Install the chart on your Kubernetes cluster:

helm install my-release ./mychart

Here, my-release is the release name, and ./mychart is the chart directory.

6. Verify the Deployment

Check the deployed resources:

kubectl get all

7. Upgrade the Release

To make changes, update values.yaml or templates and run:

helm upgrade my-release ./mychart

8. Uninstall the Release

To remove the deployment, run:

helm uninstall my-release

FAQs About Helm

1. What Are Helm Charts?

Helm charts are packages of Kubernetes manifests that define an application’s resources. They make it easy to reuse and share configurations.

2. What Are Helm Releases?

A release is a deployed instance of a Helm chart. For example, if you deploy nginx with Helm, that deployment is a release.

3. How Do I Roll Back a Deployment in Helm?

Helm keeps a history of releases, so you can roll back to a previous version:

helm rollback my-release 1

4. Can Helm Be Used with CI/CD Pipelines?

Yes! Helm integrates seamlessly with CI/CD tools like Jenkins, GitHub Actions, or GitLab CI for automated deployments.

5. What’s the Difference Between Helm 2 and Helm 3?

Helm 3 removed the need for Tiller, improving security and simplifying the architecture.


Conclusion

Helm is a game-changer for managing Kubernetes applications, especially as your environment grows more complex. With Helm, you can simplify deployments, reuse configurations, and maintain version control — all while reducing human error.

If you’re just starting with Kubernetes, Helm is a must-learn tool. By mastering Helm, you’re not just saving time — you’re setting a solid foundation for scalable and efficient Kubernetes operations.

Have any other questions about Helm? Drop them in the comments or reach out.

Leave a Reply

Your email address will not be published. Required fields are marked *