What is Helm?
Helm is the package manager for Kubernetes.
Helm is divided into two parts, the Helm Client (client) and Tiller Server (server)
Why do I need Helm?
To exemplify why do I need helm, I will tell you:
How my life was before Helm:
In order to get any kubernetes apps up and running, I had to:
- Write Kubernetes manifests by hand
- Do this everytime I wanted to release anything
- Figure out how to deal with sharing this with other team members
- Tweak all the resources by hand
- Use kubectl to manage it
How is my life now with Helm:
- Installing resources with kubernetes is now easy like apt-get, yum, homebrew … etc
- My team is now able to colaborate, sharing helm charts on our internal repositories
- Releases are reproducible across all environments (develop, accept and production)
- Packages are now sharable
- Charts: A bundle of kubernetes resource data, it operates the System Package
- Repository: A collection of release charts, something like NPM, or Ubuntu Repository.
- Release: A chart instance that was loaded into Kubernetes. If the same chart is installed several times inside the same cluster, each time the cart will have its own release.
Installing Helm on RancherOS
If you are trying to install Helm on RancherOS, chances are that you are now running into the problem that RancherOS does not come with cURL installed.[rancher@kubernetes1 ~]$ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh -bash: curl: command not found
Due to the fact that Helm uses cURL to download its dependencies, please follow up How to install cURL on RancherOS
Download Helm executable script:
[root@kubernetes1 ~]# curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5962 100 5962 0 0 47711 0 –:–:– –:–:– –:–:– 55203
Add the chmod to the executable file:
[root@kubernetes1 ~]# chmod 700 get_helm.sh
[root@kubernetes1 ~]# ./get_helm.sh