Helm is a package manager for Kubernetes, used to simplify and enhance the deployment experience for deploying resources into a Kubernetes cluster.
This training course explores Helm 3, which is the latest version of Helm building upon the successes of Helm 2. During this course, you'll learn the fundamentals of working with Helm3, its features, and the key differences between Helm 3 and Helm 2.
Several hands-on demonstrations are provided within this course, which will allow you to observe how to install and set up Helm, and also how to use Helm to perform various Chart cluster management related tasks. You'll also see how to create and host your very own Helm Chart. All of the coding assets which are used and demonstrated can be found within the CloudAcademy GitHub repositories for this course — they can be found in the links under the Resources section below. You’re encouraged to clone these repositories and perform the same helm commands against your own Kubernetes cluster.
If you have any feedback about this course, please contact us at support@cloudacademy.com.
Learning Objectives
By completing this course, you will learn:
- What Helm is and how to install it
- Helm charts, templates, releases, revisions, and repositories
- How to deploy, upgrade and rollback Helm charts
- How to create and host your own Helm charts
Intended Audience
The intended audience for this course includes:
- Anyone interested in learning about Helm and its fundamentals
- Software Engineers interested in learning how to configure and deploy Helm charts into a Kubernetes cluster
- DevOps and SRE practitioners interested in understanding how to install, manage and maintain Helm-deployed infrastructure
Prerequisites
To get the most out of this course, you should have:
- A basic understanding of Kubernetes
- Experience with deploying Kubernetes resources such as pods, deployments, services, etc.
- A basic understanding of software development and the software development lifecycle
If you’re completely new to Kubernetes, please consider taking our dedicated Introduction to Kubernetes learning path.
Resources
Welcome back! In this lesson, I'm going to provide a quick review of the terminology associated when working with Helm. Understanding the Helm terminology will help you as you proceed through the remainder of this course.
Chart. A chart is the package format used by Helm. It consists of a specific folder structure containing various files, including templates, which, when rendered, make up the resources that you deploy into your cluster. Charts are compressed into a single archive file when packaged, which then are often hosted within a chart repository.
Repository. A chart repository is nothing more than an HTTP web server that hosts and serves an index.yaml file together with one or several packaged charts. Repositories are centralized locations where you store and host your charts, allowing them to be distributed and shared to other interested users. A chart repository is akin to, say, an APT or RPM repository, as used by Linux distros. You are free to use whatever technology suits for the HTTP web server, for example, Apache or NGINX.
Templates. Template files are used within a chart package to make a deployment more general and reusable. By taking a typical Kubernetes manifest file and abstracting it into a template, you can parametrize it, such that at chart installation time you can then pass in specific values that alter the behavior of the deployed resource. This is useful for deployments that need to take place in multiple environments, say dev, test, prod, et cetera. Templating your resources helps to reduce and minimize manifest proliferation.
Releases. When you deploy a chart into a cluster, Helm creates a release for it. A release represents an instance of a chart. The same chart can be used to deploy differently named releases. Releases can be upgraded, rolled back, and even deleted. A release maintains a history of change, with every change being its own revision. Consider now the overall explanation which highlights the relationships between the individual terms just reviewed.
Helm is used to deploy and install charts into a Kubernetes cluster. A chart consists of one or several templates. Charts are hosted within repositories. To locate a Helm chart, one would search within a repository. At install time, templates are then rendered into manifest files, which are then sent to the Kubernetes API server, resulting in a new chart release. Upgrading an existing release results in a new revision of that release being created. Releases maintain version history, et cetera, and can be rolled back or deleted.
Okay, that now completes this lesson in which I provided a quick review of several of the more important and commonly used terms that you'll often hear when working with Helm. Go ahead and close this lesson, and I'll see you shortly in the next one.
Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).