Skip to main content

Helm Deep Dive

Course

Intro Video

Photo of Michael McClaren

Michael McClaren

Linux Training Architect I in Content

Length

04:59:53

Difficulty

Advanced

Videos

15

Hands-on Labs

3

Course Details

In this course we will be learning Helm the package manager for Kubernetes. We will start with the pre-requisites such as getting a Kubernetes cluster where we can install Tiller, the server side of helm, and ensure that our installation is working and that we are able to create a release. We will then cover charts, these are the packages that helm installs. We will cover the anatomy of a chart and how to make a chart from scratch. We will also show how to customize existing charts so that they can be used as templates for our own releases with Helm.

Interactive Diagram: https://interactive.linuxacademy.com/diagrams/HelmDeepDive.html

Syllabus

Getting Started

What Are We Doing Here?

About the Author

00:00:21

Lesson Description:

Hello everyone, and welcome to the course!

Course Intro

00:02:56

Lesson Description:

In this short intro I wanted to explain the reasons for the pre-requisite courses that I have listed, and talk about some of the things that you will need to know ahead of time to get the most out of this course. There are several skills you should have already developed before diving into this Helm course. I name several in this video, and give some resources that will help you with any deficiencies.

What is Helm and What Does It Do?

What Is Package Management?

00:05:38

Lesson Description:

In this short lessson we will discuss what package management is and why it is the perferred method of handling software and application installation on systems. We will cover the primary functions of a package manager and show examples of these functions using apt on an Ubuntu server.

Package Management in Kubernetes

00:15:02

Lesson Description:

In this lesson we will be looking at using Helm for package management in Kubernetes. We will review the feautures that are provided by a package manager, and how these get invoked in Helm.

High Level Overview of Helm and Tiller

00:05:31

Lesson Description:

In the lesson we will see the two parts of Helm: the client, helm, and the server, Tiller. We will discuss the job of each componenet and see how helm and Tiller interact.

Creating an Environment

Making a Kubernetes Cluster

00:11:06

Lesson Description:

In this lesson we will do a quick review of getting a Kubernetes cluster up and running. This will be the basis for all of the future work that we do using Helm. We will also cover the installation of the Rook volume provisioner. All of this takes place on our Cloud Playground servers using the Cloud Native Kubernetes image. Update The course video has been edited to provide the correct version of rook, for this purpose there is a git repo provided that is a copy of the release-0.9 version of rook. Please make sure that you are using this repo. Commands to install rook Make sure that you get the correct version of rook, in this course we are using rook 0.9

git clone https://github.com/linuxacademy/content-kubernetes-helm.git ./rook
cd ./rook/cluster/examples/kubernetes/ceph


kubectl create -f operator.yaml
Once the agent, operator and discover pods are started in the rook-ceph-system namespace then setup the cluster
kubectl create -f cluster.yaml
Once this is run wait for the appearance of the OSD pods in the name space rook-ceph
kubectl get pods -n rook-ceph
Create a storage class so that we can attach to it.
kubectl create -f storageclass.yaml

Installing Helm and Tiller part 1

00:09:34

Lesson Description:

In this lesson we will look at installing Helm using available packages. These methods include package mangement with Snap and installing from binaries that are precompiled. We will explore the commands:

helm init
as well as
helm init --upgrade
and when to use each one.

Installing Helm and Tiller part 2

00:11:20

Lesson Description:

In this lesson we continue with the installation of Helm and Tiller as we compile the Helm binaries from source code. We will also quickly cover in setup of the golang environment required to compile Helm. Once we have the binaries available we will install Helm and Tiller. Then we'll discuss service accounts and ensure that our installation is able to create a release. The installation for golang can be found at : https://golang.org/doc/install The glide project is located at: https://github.com/Masterminds/glide The official helm repo is located at https://github.com/helm/helm Here is a command reference for this lesson: Build command for Helm:

make bootstrap build
Kubernetes service account:
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Putting Helm to Work

Charts, Where Do I Get Them?

00:07:31

Lesson Description:

In this lesson we will be exploring where charts can be sourced. We will discuss the official chart repository, as well as private repositories and local sources. We will touch on the reasons that you might want to maintain your own repository.

Charts, What Are They?

00:07:18

Lesson Description:

In this lesson we will take a look into the composition of a chart. We will be downloading a local copy of a chart, and then we will look at each of the files and directories that comprise a chart to see how they interact.

Customizing Charts part 1

00:08:55

Lesson Description:

Locating and knowing how to install charts is great, but we need to be able to configure the charts so that they can be used in our clusters. In this lesson we will take the knowledge that we have about the makeup of a chart and use that to see how we can customize a chart. We will see how to override values using switches in the install command, as well as how to fetch and hardcode our values. This is a longer lesson, so it's broken into 2 parts.

Customizing Charts part 2

00:08:11

Lesson Description:

This is the second part of the lesson on customizing charts, and here we will be finishing up exploring this topic.

Repositories

00:09:12

Lesson Description:

In this lesson we will take a look at repositories. We'll see where a repository can be hosted, as well as how to create a repository using the Helm client and GitHub. Then, we will walk through the steps needed to create a repository, and finally install the chart that we have placed in the repository.

Releases

00:13:41

Lesson Description:

In this lesson we will explore how to create a release in Helm. We will be updating a chart that we have previously released and we will look at the process for packing that chart into an existing repository, as well as updating the index for that repository. Once we have it updated, we will update the local cache for the repository so that search reflects our changes. Once we have the repository updated we will look at releasing a specific version of a chart, and then upgrading to the current version of the chart. Note: The process and techniques used in this lesson are meant to teach commands and the result of those commands. Deleting stateful sets and persistent volumes and the volume claims will result in data loss.

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Whats Next?

Looking Forward

Where Do We Go from Here?

00:03:28

Lesson Description:

In this short video we'll see how to search for additional Kubernetes courses using the advanced search tool on the Linux Academy site. I will also recommend the courses that I think should be next if you are in pursuit of more Kubernetes knowledge. Thanks for allowing me to bring you this course, and I hope that you feel that your time here was well spent.

Take this course and learn a new skill today.

Transform your learning with our all access plan.

Start 7-Day Free Trial