I. Overview
helm is kubernetes package management tools to simplify application deployment and management Kubernetes. Charts-- used to manage resources preconfigured installation package.
The main role of the charts and Helm:
Application Package
Version Management
dependency checking
to facilitate application distribution
helm is a C / S software framework, a client helm corresponds, Tiller is a server
Helm Helm is the CLI client, the local execution
Tiller is a server-side component, on Kubernetes cluster is running, and management Kubernetes application lifecycle
Repository is Chart warehouse, Helm client to access the repository Chart via HTTP protocol index file and archive
Helm works
Chart Install process:
Helm Chart parsing the configuration information from the specified directory or file tgz
Helm specified configuration and Values Chart information is transmitted to gRPC Tiller
Tiller and generates a Release Values the Chart
Tiller sends to Kubernetes for generating Release Release
Chart the Update process:
Helm parsed from the specified directory or tgz file the Chart configuration information
Helm to be updated Release names and Chart structure, Values information to Tiller
Release Tiller generating Release and updating the specified name History
Tiller sent to Release Kubernetes for updating Release
Chart Rollback procedure:
Helm, Release name passed to roll back to Tiller
Tiller History The name lookup Release of
Tiller obtaining a Release from the History
Tiller Release sent to the one used to replace the current Release Kubernetes
Second, install the client Helm
curl -LO https://www.cnrancher.com/download/helm/helm-v2.14.3-linux-amd64.tar.gz
tar -xvf helm-v2.14.3-linux-amd64.tar.gz
sudo cp linux-amd64/helm /usr/local/bin/
View version information
$ helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Error: could not find tiller
Third, the installation tiller Server
Create a service account
kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
Initialization tiller
Note: offline environment requires an explicit declaration --tiller-image, and needs to be consistent with the helm client version, as in the above v2.14.3, automatically select the appropriate version of the following by way of an environment variable
helm init --service-account tiller --tiller-image rancher/tiller:v2.14.3 --skip-refresh
$ kubectl get pods --namespace kube-system | grep tiller
tiller-deploy-65cff4d7bc-g9gzm 1/1 Running 0 11d
$ helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}