Cloud Native 8 min read

Master Helm: The Ultimate Guide to Kubernetes Package Management

This comprehensive guide explains what Helm is, its core concepts like charts and releases, how to install and upgrade it across platforms, essential commands for managing charts and releases, and why Helm simplifies Kubernetes application deployment, version control, and dependency management.

Efficient Ops
Efficient Ops
Efficient Ops
Master Helm: The Ultimate Guide to Kubernetes Package Management

Helm is a powerful Kubernetes package manager that simplifies application deployment and management, similar to apt/yum/homebrew for Kubernetes.

1. What is Helm?

Helm uses Charts (pre‑configured Kubernetes resource packages) to simplify the installation and management of Kubernetes applications, allowing you to define, install, and upgrade even the most complex apps.

图片
图片

2. Key Concepts

2.1 Charts

A Helm Chart is a package containing all resource definitions needed to run an application on a Kubernetes cluster. A chart consists of:

Metadata about the chart (Chart.yaml)

One or more template files for Kubernetes manifests

Default values (values.yaml) that can be overridden

Optional dependencies on other charts

2.2 Releases

When a chart is installed, Helm creates a release – a specific instance of that chart running in the cluster. Each installation creates a new release, allowing multiple releases of the same chart with different configurations.

3. Installing Helm

Helm can be installed via scripts, package managers, or binaries on all major operating systems.

For Linux and macOS, use the automated script:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

3.1 Upgrading Helm

Upgrade via script:

# The script checks if Helm is installed and upgrades it.
./get_helm.sh

Or via package managers:

# Homebrew
brew upgrade helm
# Chocolatey
choco upgrade kubernetes-helm
# Other package managers...

3.2 Helm in CI/CD

Install Helm non‑interactively for CI/CD pipelines:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Or within a Docker container:

FROM alpine:3.18

RUN apk add --no-cache curl && \
    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && \
    chmod 700 get_helm.sh && ./get_helm.sh && \
    rm get_helm.sh

4. Core Commands

4.1 Chart Commands

helm create – create a new chart

helm package – package a chart into an archive

helm pull – download a chart

helm lint – check chart for issues

helm repo – manage chart repositories

4.2 Release Commands

helm install – install a chart

helm upgrade – upgrade a release

helm rollback – roll back to a previous version

helm uninstall – uninstall a release

helm list – list releases

helm history – view revision history

helm status – display release status

5. Why Use Helm?

Helm offers significant benefits for Kubernetes users:

Simplifies application deployment with a single command

Ensures consistent installations across environments

Provides version control and easy rollback

Enables template‑based flexible manifests

Facilitates chart sharing and reuse

Manages dependencies between applications

6. Understanding Chart Repositories

6.1 Adding a Repository

Add a repository to Helm configuration, e.g., the official Bitnami repo:

helm repo add bitnami https://charts.bitnami.com/bitnami

After adding or to refresh the local cache, run:

helm repo update

6.2 Searching for Charts

Search for charts, for example all MySQL related charts: helm search repo mysql Sample output:

NAME                CHART VERSION   APP VERSION   DESCRIPTION
bitnami/mysql       9.4.5           8.0.31        MySQL is a fast, reliable, scalable...
bitnami/phpmyadmin  10.4.0          5.2.0         phpMyAdmin is a free software tool...

6.3 Installing a Chart

Deploy a chart to your Kubernetes cluster using: helm install [RELEASE_NAME] [CHART] This workflow establishes the foundation for using Helm charts in a K8s environment, enabling easy deployment and management of applications.

DevOpsPackage ManagementHelm
Efficient Ops
Written by

Efficient Ops

This public account is maintained by Xiaotianguo and friends, regularly publishing widely-read original technical articles. We focus on operations transformation and accompany you throughout your operations career, growing together happily.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.