Introduction to Helm

Introduction to Helm

What is Helm?

Helm is a package manager for Kubernetes. It is the Kubernetes equivalent of yum, apt, and homebrew. Helm is a tool that streamlines installing and managing Kubernetes applications. Think of it like apt/yum/homebrew for Kubernetes.

Why use Helm?

Helm is the best way to find, share, and use software built for Kubernetes. Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.

Helm Architecture

Helm has two parts: a client (helm) and a server (tiller)

Helm Client

The Helm client is a CLI tool that allows you to interact with the Tiller server, install charts, list and remove deployed releases, and perform a variety of other operations on charts.

Tiller Server

Tiller is the server portion of Helm. It runs inside of your Kubernetes cluster, and manages releases (installations) of your charts.

Helm Charts

Helm runs on your laptop, CI/CD, or wherever you want it to run. Charts are Helm packages that contain at least two things:

  • A description of the package (Chart.yaml)
  • One or more templates, which contain Kubernetes manifest files

Charts can be stored on disk, or fetched from remote chart repositories (like Debian or RedHat packages)

Helm Charts are the best way to find, share, and use software built for Kubernetes.

What is a Helm Chart?

A Helm Chart is a collection of files that describe a related set of Kubernetes resources. A single Chart might be used to deploy something simple, like a memcached pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on.

What is a Helm Repository?

A Helm Repository is an HTTP server that houses an index.yaml file and optionally some packaged charts. The index.yaml file contains a list of all of the charts in the repository. The index file is a YAML file that lists all of the charts in the repository with important metadata about each chart, including name, version, description, and supported Kubernetes version.

What is a Helm Release?

A Helm Release is an instance of a chart running in a Kubernetes cluster. One chart can often be installed many times into the same cluster. And each time it is installed, a new release is created. Consider a chart that installs MySQL. If you want two databases running in your cluster, you can install that chart twice. Each one will have its own release, which will in turn have its own release name.