Everything you need to know about Helm - Part II
in Kubernetes , Orchestration
Helm v2 vs Helm v3. Helm commands. A sample installation using Helm and useful resources to learn Helm.
Introduction
If you are new to Help, you should absolutely go through the first part of this tutorial “Everything you need to know about Helm - Part I”. In this part, we introduced Helm, and we went through its installation steps.
In this second part, we are going to learn about Helm versions (v2 vs. v3), most common commands, and most importantly, we are going to see a practical example of how to use it.
Helm Versions
The current version of Helm is Helm3. This was not simply a run-of-the-mill version upgrade - Helm3 introduced major internal differences regarding Helm’s internal workings and how Kubernetes packages were managed.
The biggest change from the previous version (Helm2) was the removal of Tiller, the server component. The reasons for this are explained in the Helm FAQ docs, in the section named ‘Removal of Tiller’.
Some other significant changes in Helm3 are below. Again, they are explained in detail in the FAQ documentation:
- Improved upgrade strategy
- Release names now restricted to the namespace
- ‘Secrets’ used as the default storage driver
- Ability to validate chart values with JSON
- Consolidation of requirements.yaml into chart.yaml
- Automatic creation of namespaces
Helm Commands
Let’s now take a look at the most common Helm commands and their usage. The full Helm command list is too long to list here, but you can and should go through it:
Helm install: this is the most common command, used for installing new charts. The basic syntax to install a chart from a repo is:
helm install <name> <chart> [flags]
For example, to install nginx v1.16:
helm install mynginx-116 /myrepos/nginx-v116
When you use this chart reference with a repo prefix ('/myrepos/nginx-v116'), Helm will look in the local configuration for a chart repo named ‘myrepos', and then look for a chart named 'nginx-v116' in that repository.
You can also download directly from an absolute url:
helm install mynginx-116 https://nginx.org/download/nginx-1.16.1.tar.gz
You may also need to check your list of repos to make sure the repo you want to install from is part of your list. Use this command:
helm repo list [flags]
And if the repo you want is not in your list, you can add it with:
helm repo add [repo-name] [URL] [flags]
Example:
helm repo add nginx-v116
https://nginx.org/download/nginx-1.16.1.tar.gz
If you need to update your repos:
helm repo update [flags]
You should also familiarize yourself with the helm create command. This creates a new chart structure (the directories and files we listed above) with the given name. The basic syntax is:
helm create NAME [flags]
And if you want to display a chart’s contents:
helm show all chart [chart-name]
If you need to rollback to a previous release:
helm rollback <RELEASE> [REVISION] [flags]
To uninstall a specific release:
helm uninstall RELEASE_NAME [flags]
Note: You can use the '--dry-run' flag to see which releases will be uninstalled without actually uninstalling them.
Sample Installation Using Helm
Let’s now 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. If not, first read this article:
Navigate to the directory where you installed Helm:
cd /path/to/helm
First, we want to confirm if our repo list contains ‘nginx’:
helm search repo nginx
Depending on the results (check against the nginx source) you may want to add the latest repo:
helm repo add nginx-stable https://helm.nginx.com/stable
And then it’s always a good idea to update your repo list after adding or deleting repos:
helm repo update
Next, install the nginx chart (package):
helm install my-release nginx-stable/nginx-ingress
Or if nginx is already installed and you only need to upgrade the version:
helm upgrade my-release nginx-stable/nginx-ingress
And finally, if you ever need to uninstall this nginx version:
helm uninstall my-release
Useful Resources to Learn Helm
Probably the most important resource to start Helm is the official documentation.
As it’s described by the creators and maintainers of Helm, Helm has a lot of documentation. A high-level overview of how it’s organized will help you know where to look for certain things:
- Tutorials take you by the hand through a series of steps to create your first Helm chart. Start here if you’re new to Helm.
- Topic guides discuss key topics and concepts at a fairly high level and provide useful background information and explanation.
- Community Guides discuss topics centered around Helm’s community. Start here if you want to learn more about the development process of Helm itself and how you can contribute.
- How-to guides are recipes. They guide you through the steps involved in addressing key problems and use-cases. They are more advanced than tutorials and assume some knowledge of how Helm works.
Conclusion
You hopefully now have a pretty good idea of Helm - what it does, why we use it, and where it fits into the Kubernetes ecosystem (think of Helm as the ‘apt’ or ‘rpm’ equivalent for Kubernetes). And you also have a good idea of some Helm sample commands and how to install and deploy a simple app using Helm.
Get similar stories in your inbox weekly, for free
Share this story:
Cloudplex
Founder and CEO of Cloudplex - We make Kubernetes easy for developers.
Latest stories
How ManageEngine Applications Manager Can Help Overcome Challenges In Kubernetes Monitoring
We tested ManageEngine Applications Manager to monitor different Kubernetes clusters. This post shares our review …
AIOps with Site24x7: Maximizing Efficiency at an Affordable Cost
In this post we'll dive deep into integrating AIOps in your business suing Site24x7 to …
A Review of Zoho ManageEngine
Zoho Corp., formerly known as AdventNet Inc., has established itself as a major player in …
Should I learn Java in 2023? A Practical Guide
Java is one of the most widely used programming languages in the world. It has …
The fastest way to ramp up on DevOps
You probably have been thinking of moving to DevOps or learning DevOps as a beginner. …
Why You Need a Blockchain Node Provider
In this article, we briefly cover the concept of blockchain nodes provider and explain why …
Top 5 Virtual desktop Provides in 2022
Here are the top 5 virtual desktop providers who offer a range of benefits such …
Why Your Business Should Connect Directly To Your Cloud
Today, companies make the most use of cloud technology regardless of their size and sector. …
7 Must-Watch DevSecOps Videos
Security is a crucial part of application development and DevSecOps makes it easy and continuous.The …