What is Helm? What are Helm tasks and components? What are Helm charts? How to install Helm?
As we have seen, Kubernetes is a powerful and popular container-orchestration system. But as we’ve also seen, migrating to and setting up your applications on Kubernetes can be a complex, daunting task. Setting up a single application can involve creating multiple interdependent Kubernetes components – pods, services, deployments, and replicasets, and each component requires you to write a detailed YAML manifest file.
Enter Helm. Just like apt for Ubuntu or yum and rpm for RedHat, Helm is a package manager for Kubernetes that allows you as a developer or an admin to more easily package, configure, and deploy applications and services into your Kubernetes clusters.
Helm is now an official Kubernetes project and is part of the Cloud Native Computing Foundation, a non-profit, open-source software foundation that promotes the adoption of cloud-native computing.
Helm Tasks and Components
Like any good package manager, Helm does all the following tasks:
- Fetches applications and software packages from repositories
- Installs apps and packages in the Kubernetes cluster
- Automatically installs those apps’ dependencies
- Upgrades the apps and their dependencies
Helm does all these using the following components:
- Helm: a command line tool that offers a user interface to all Helm functionality.
- Tiller (only in the previous version Helm2, now deprecated in Helm3): the server component that ran on the Kubernetes cluster. Tiller listened for commands from Helm then executed the configuration/ upgrade/ deployment tasks on the cluster. But from Helm3, all this functionality is now handled directly by the Helm tool.
- Charts: the Helm packaging format. We will dig into Charts in more detail in the next section
- Charts Repo: the official repo for Helm charts. It is located in https://github.com/helm/charts
Helm is available for the 3 major OS’s - Linux, Windows and MacOS. There are 2 different ways to install Helm. We will only list these 2 ways here, since they are explained in detail in the official documentation guide:
- From the Helm Project, either as a binary release or as a script.
- Using package managers such as apt for Ubuntu, Chocolatey for Windows, or Homebrew for MacOS
That said, the most common installation method is via a package manager. The quick steps for installation on Ubuntu using apt are given below. The apt package for Helm can be found here, and the commands for installation are:
curl https://baltocdn.com/helm/signing.asc | sudo apt-key add - sudo apt-get install apt-transport-https --yes echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list sudo apt-get update sudo apt-get install helm
If you are using Kubernetes, you will certainly need the power of Helm when your project grows and when you’ll need to manage different configurations with rules and advanced features. This first part is the introduction to using Helm, as we introduced the tool and how to install it.
In the second part (Everything you need to know about Helm - Part II), we are going to dive deep into more concepts like Helm versions and commands. We will also go through a sample installation and deployment of Nginx using Helm, so you can get an idea of how all these commands are used. We will use Ubuntu for this exercise and assume you already have Kubernetes and Helm3 installed.