Elasticsearch Deploying Elasticsearch Using Helm Charts

By Opster Team

Updated: Jul 20, 2023

| 2 min read

Introduction 

Helm is a package manager for Kubernetes that allows developers and operators to more easily package, configure, and deploy applications and services onto Kubernetes clusters. Elasticsearch, a distributed, RESTful search and analytics engine, can be deployed onto a Kubernetes cluster using a Helm Chart. This article will guide you through the process of deploying Elasticsearch using Helm Charts.

Prerequisites

Before we begin, ensure that you have the following installed and configured on your system:

  1. Kubernetes cluster
  2. Helm package manager
  3. Kubectl command-line tool

Step-by-step guide

Step 1: Add Elasticsearch Helm Repository

The first step in deploying Elasticsearch using Helm is to add the Elasticsearch Helm repository to your Helm client. This can be done using the following command:

bash
helm repo add elastic https://helm.elastic.co

After adding the repository, update your Helm client to get the latest charts from the newly added repository:

bash
helm repo update

Step 2: Configure Elasticsearch Helm Chart

Before deploying Elasticsearch, you need to configure the Helm Chart according to your requirements. Create a `values.yaml` file and specify the configuration for your Elasticsearch deployment. Here is an example of a basic `values.yaml` file:

yaml
clusterName: "elasticsearch"
nodeGroup: "master"

master:
  replicas: 3
  heapSize: "512m"

data:
  replicas: 2
  heapSize: "512m"
  persistence:
    enabled: true

This configuration sets up a three-node Elasticsearch cluster with two data nodes and persistence enabled.

Step 3: Deploy Elasticsearch

With the Helm repository added and the Helm Chart configured, you can now deploy Elasticsearch onto your Kubernetes cluster. Use the following command to deploy Elasticsearch:

bash
helm install elasticsearch elastic/elasticsearch -f values.yaml

This command deploys Elasticsearch onto your Kubernetes cluster using the configuration specified in the `values.yaml` file.

Step 4: Verify Deployment

After deploying Elasticsearch, verify that the deployment was successful by checking the status of the Elasticsearch pods in your Kubernetes cluster:

bash
kubectl get pods --namespace=default -l app=elasticsearch-master -w

If the deployment was successful, you should see your Elasticsearch pods running in your Kubernetes cluster.

Conclusion

Deploying Elasticsearch using Helm Charts simplifies the deployment process and allows for easy configuration of Elasticsearch deployments. By following the steps outlined in this article, you can deploy your own Elasticsearch cluster onto a Kubernetes cluster using Helm. Remember to configure the Helm Chart according to your specific requirements before deploying Elasticsearch.