Helm - Getting Started with Kubernetes Package Manager

Vatsal Bajpai
Vatsal Bajpai
10 min read·
Cover Image for Helm - Getting Started with Kubernetes Package Manager

Introduction

Helm is a powerful package manager for Kubernetes that simplifies the deployment and management of applications on Kubernetes clusters. Often referred to as the "Yum" or "Apt" of Kubernetes, Helm enables developers and DevOps teams to define, install, upgrade, and manage even the most complex Kubernetes applications with ease.

Helm official website - helm.sh

This blog will explore the benefits of Helm, how it works, and provide a step-by-step guide to get started with a basic example using an NGINX pod.

Benefits of Using Helm

  1. Simplified Kubernetes Deployments

    Helm streamlines the process of deploying applications by packaging all Kubernetes resources (e.g., ConfigMaps, Secrets, Services, Deployments) into a single, reusable Helm chart. This reduces the need for writing repetitive YAML files, making deployments faster and more consistent.

  2. Version Control and Rollbacks

    Helm manages application releases with version control, allowing easy upgrades and rollbacks of Kubernetes applications. This is especially useful for managing complex microservices environments where consistency and stability are critical.

  3. Reusability and Shareability

    Helm charts can be shared and reused, fostering collaboration among teams. Public repositories like Helm Hub contain a wide range of ready-to-use charts for popular applications, enabling teams to quickly deploy standard software components.

  4. Parameterization and Configuration Management

    Helm supports parameterization of Kubernetes manifests, allowing users to override default configurations using values files. This flexibility enables tailored deployments for different environments (e.g., development, staging, production) without modifying the underlying chart.

  5. Enhanced DevOps Automation

    Helm integrates seamlessly into CI/CD pipelines, enabling automated deployments and updates. This makes it an essential tool for DevOps practices, providing consistent and repeatable application releases.

How Helm Works

Helm operates on the concept of charts, which are packages of pre-configured Kubernetes resources. Here's a breakdown of how Helm functions:

  1. Helm Charts

    A Helm chart is a collection of files that describe a set of Kubernetes resources. These files include templates for Kubernetes manifests, a Chart.yaml file containing metadata about the chart, and a values.yaml file for default configurations. Charts can be created, published, shared, and versioned.

  2. Helm Repositories

    Helm repositories are places where charts are stored and shared. Users can host their own Helm repositories or use public repositories like Helm Hub or Artifact Hub to access a variety of community-maintained charts.

  3. Helm Release Management

    Helm installs charts to create a release, which is a running instance of a chart with a specific configuration. Releases are managed by Helm, allowing for upgrades, rollbacks, and deletions of applications with a single command. Helm tracks the state and history of each release, providing powerful version management capabilities.

  4. Template Engine

    Helm uses Go templates to render Kubernetes manifests. This templating system allows for dynamic configuration of manifests based on input parameters, making Helm charts highly customizable and reusable across different environments.

  5. Helm CLI

    The Helm Command Line Interface (CLI) is the primary tool for interacting with Helm. Common Helm commands include helm install, helm upgrade, helm rollback, helm list, and helm delete. These commands enable users to manage application lifecycles in a Kubernetes cluster efficiently.

Getting Started with Helm: Deploying a Basic NGINX Example

To get started with Helm, let's deploy a basic NGINX application on a Kubernetes cluster using Helm. This example will walk through the steps of installing Helm, creating a Helm chart, and deploying an NGINX pod.

###S tep 1: Install Hel

  1. Download Helm

    Visit the official Helm GitHub releases page and download the latest version for your operating system.

  2. Install Helm

    Follow the instructions to install Helm on your local machine. For Linux and macOS, you can use the following commands:

    curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
    
  3. Verify Installation

    Verify that Helm is installed correctly by running

    helm version
    

Step 2: Install an NGINX Helm Chart

  1. Add the Bitnami Helm Repository

    helm repo add bitnami https://charts.bitnami.com/bitnami
    
  2. Update Helm Repositories:

    helm repo update
    
  3. Install the NGINX Helm Chart

    helm install my-nginx bitnami/nginx
    
  4. Verify the Release

    helm list
    
  5. Verify the Installation

    kubectl get pods
    
  6. Access NGINX service

    kubectl port-forward svc/my-nginx 8080:80
    

Open a browser and navigate to http://localhost:8080 to see the NGINX welcome page.

If you like this, follow us on Twitter and LinkedIn and explore our platform to help save you more cloud costs - gravitycloud.ai


footer