Kubernetes Package Manager: “Helm Charts”…made simple !!
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