Cloud Native 7 min read

How to Install Helm and Tiller on Kubernetes: Step-by-Step Guide

This guide explains what Helm charts and values.yaml are, shows how to install the Helm client and Tiller server on a Kubernetes master node, and provides common Helm commands for managing releases, all with concrete code examples and verification steps.

Full-Stack DevOps & Kubernetes
Full-Stack DevOps & Kubernetes
Full-Stack DevOps & Kubernetes
How to Install Helm and Tiller on Kubernetes: Step-by-Step Guide

Overview

Helm is the package manager for Kubernetes, consisting of a client ( helm) and a server component ( tiller) that interacts with the API server to create releases from charts.

Key Concepts

Chart : a collection of Kubernetes manifest files (e.g., Deployment, Service) packaged together.

values.yaml : a file that supplies default configuration values for a chart; users can override these when installing.

Repository, Release, Chart relationship : a repository stores charts; a chart combined with values.yaml produces a release instance in a target cluster.

Installing the Helm client

Download the Helm binary from the official release page, extract, and move it to /usr/local/bin:

tar -xzvf helm-v2.13.1-linux-amd64.tar.gz
cd linux-amd64
cp helm /usr/local/bin
helm version

The command should display matching client and server versions once Tiller is installed.

Installing the Tiller server

Create an RBAC service account and binding (example rbac.yaml) and apply it:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: tiller
  namespace: kube-system
kubectl apply -f rbac.yaml

Load the Tiller Docker image onto each node (download link provided) and create the deployment manifest ( tiller.yaml) then apply it:

docker load -i tiler_2_13_1.tar.gz
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tiller-deploy
  namespace: kube-system
  labels:
    app: helm
    name: tiller
spec:
  replicas: 1
  selector:
    matchLabels:
      app: helm
      name: tiller
  template:
    metadata:
      labels:
        app: helm
        name: tiller
    spec:
      serviceAccount: tiller
      containers:
      - name: tiller
        image: gcr.io/kubernetes-helm/tiller:v2.13.1
        ports:
        - containerPort: 44134
          name: tiller
        - containerPort: 44135
          name: http
        livenessProbe:
          httpGet:
            path: /liveness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        readinessProbe:
          httpGet:
            path: /readiness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
---
apiVersion: v1
kind: Service
metadata:
  name: tiller-deploy
  namespace: kube-system
  labels:
    app: helm
    name: tiller
spec:
  type: ClusterIP
  ports:
  - name: tiller
    port: 44134
    targetPort: tiller
  selector:
    app: helm
    name: tiller
kubectl apply -f tiller.yaml

Verify the deployment:

kubectl get pods -n kube-system
# Expected output includes a Running tiller-deploy pod

Common Helm commands

helm install [RELEASE] [CHART] [flags]

– create a new release. helm upgrade [RELEASE] [CHART] [flags] – upgrade an existing release. helm rollback [RELEASE] [REVISION] [flags] – roll back to a previous revision. helm delete [RELEASE] [flags] – delete a release. helm history [RELEASE] – view revision history. helm inspect [CHART] – show chart details. helm fetch [CHART] – download a chart. helm package [CHART] – package a chart for distribution.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

charttiller
Full-Stack DevOps & Kubernetes
Written by

Full-Stack DevOps & Kubernetes

Focused on sharing DevOps, Kubernetes, Linux, Docker, Istio, microservices, Spring Cloud, Python, Go, databases, Nginx, Tomcat, cloud computing, and related technologies.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.