Skip to content

Latest commit

 

History

History
67 lines (42 loc) · 3.05 KB

File metadata and controls

67 lines (42 loc) · 3.05 KB

What is Helm?

Helm is a package and module manager for Kubernetes that allows you to define, install, and manage Kubernetes applications as reusable packages called Charts. Helm provides support for official charts in their repository that contains various applications such as Jenkins, MySQL, and Consul to name a few.

In the current version of Helm, there are two components: the Helm Client, and the Helm Server (Tiller).

What is the Helm Client?

The Helm client is a command line utility that provides a way to interact with Tiller. It is the primary interface to installing and managing Charts as releases in the Helm ecosystem. In addition to providing operational interfaces (e.g install, upgrade, list, etc), the client also provides utilities to support local development of Charts in the form of a scaffolding command and repository management (e.g uploading a Chart).

What is Tiller (the Helm Server)?

Tiller is a component of Helm that runs inside the Kubernetes cluster. Tiller is what provides the functionality to apply the Kubernetes resource descriptions to the Kubernetes cluster. When you install a release, the helm client essentially packages up the values and charts as a release, which is submitted to Tiller. Tiller will then generate Kubernetes YAML files from the packaged release, and then apply the generated Kubernetes YAML file from the charts on the cluster.

Installing the Helm Client

The Helm client can be installed either from source, or from pre-built binary releases.From the Binary release

Every release of Helm provides binary releases for a variety of OSes. These binary versions can be manually downloaded and installed.

Download your desired [[https://github.com/helm/helm/releases][version]]
Unpack it (tar -zxvf helm-v2.0.0-linux-amd64.tgz)
Find the helm binary in the unpacked directory, and move it to its desired destination (mv linux-amd64/helm /usr/local/bin/helm)

From there, you should be able to run the client: helm help

Initialization

After installing helm on your machine, initialize Helm on your Kubernetes cluster:

Create a Service Account for the tiller. Check Service Account file in serviceaccount directory

kubectl create -f serviceaccount/tiller.yaml

Give the ServiceAccount full permissions to manage the cluster.

kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

Initialize helm and tiller.

helm init --service-account tiller

Test Installation

kubectl -n kube-system  rollout status deploy/tiller-deploy
Waiting for rollout to finish: 0 of 1 updated replicas are available...
deployment "tiller-deploy" successfully rolled out

Validate Tiller

helm version
Client: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}