Kubernetes Package Manager: “Helm Charts”…made simple !!

Docker Turtle
2 min readJun 6, 2018

--

Helm is a open source tool for packaging, install and update — Kubernetes Resources.

Helm is similar to operating system (OS) package managers such as Debian’s APT, Red Hat’s Yum, and macOS’ Homebrew

Use Helm to deploy Jenkins, MongoDB, Kafka, Cassandra, Nginx to K8 cluster

Helm == Linux “yum” , “apt” package manager

Main Components of Helm:

  • Chart

“Chart”is a Helm’s packaging format

Chart is a collection of files (related set of Kube resources)

A Chart is a folder which contains: chart (metadata), template(manifest of Kubernetes Resource), values (CPU, RAM, Docker Image name)

For each Software project: an Helm Chart might be created by Community or Enterprises (example: Jenkins, Redis, Elasticsearch, etc)

Jenkins Helm Chart

Redis Helm Chart

  • Helm Repository : as GitHub and Docker Repo

We can store all Helm Charts with different Versions in Helm Repo.

  • Version

Each Helm Chart should have a unique version. If you upgrade your Software Charts(files inside your Chart folder), then you create a new Version of Chart.

  • Release (each Deployment to K8 cluster)

To deploy a Redis Helm chart, you need create a new Release name for Redis Chart deployments in Kubernetes cluster.

Release name should be unique in single Kube namespace.

Example: “payment-processor-dev-redis” (Release name)

“payment-processor-dev” is the Release name

“redis” is the Helm Chart name

  • Upgrade & Rollback Helm Chart release (using Versions)

If we are currently running Redis Helm Chart : version 1.0.0, in Kube cluster.

We want to upgrade Redis from 1.0.0 to 1.0.2 ?

helm install redis version 1.0.2

Helm will do rolling update of Kube Pods and Containers

**************************************************************

Helm Client and Tiller (server)communication

Tiller runs inside Kube cluster Nodes

Helm Commands :

Learn Basics of Docker, Kubernetes and Helm charts — watch : Great session

--

--