Eliatra Suite

2023-06-01

Eliatra Suite on Kubernetes: Part 1 – Getting Started with Helm Charts

This article describes how to install an Eliatra Suite protected OpenSearch cluster on Kubernetes with Helm.

Prerequisites

You will need to have Docker installed on your local machine and a running Kubernetes cluster. In the scope of this blog post, we will install Kubernetes also locally (with minikube) but in the next parts of this blog post series, we will leverage AWS EKS for a production-grade setup.
The local minikube Kubernetes cluster will need 8 GB of memory and 4 CPUs.
minikube start --driver docker --memory 4096 --cpus 2 --kubernetes-version "v1.23.3" --nodes 2 -p "eliatra-suite" --wait=true
minikube -p eliatra-suite  kubectl -- apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.24/deploy/local-path-storage.yaml
minikube -p eliatra-suite  kubectl -- patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
minikube -p eliatra-suite  kubectl -- delete storageclass standard

This will start minikube with 8 GB of memory, 4 CPUs and 2 nodes and installs the rancher local-path-provisioner, because minikubes own local-path storage class is not working well.

Get Eliatra Suite Helm charts

We provide free and open source licensed Helm charts to install Eliatra Suite.
Get the Eliatra Suite Helm charts:
helm repo add eliatra-suite https://git.eliatra.com/api/v4/projects/40/packages/helm/stable 
helm repo update

Install Eliatra Suite

In this quick start, we deploy just one master, one client, and one data node.
helm install --set master.replicas=1 --set data.replicas=1 --set client.replicas=1 esuite eliatra-suite/eliatra-suite
Then run minikube -p eliatra-suite kubectl -- get pods to check if all OpenSearch nodes are up and running. It will take a few minutes, depending on your hardware.
If the result of the above command looks similar to:
NAME                                              READY   STATUS      RESTARTS   AGE
esuite-eliatra-suite-cleanup-job-28090890-xxx     0/1     Completed   0          5m23s
esuite-eliatra-suite-cleanup-job-28090895-xxx     1/1     Running     0          23s
esuite-eliatra-suite-client-0                     1/1     Running     0          7m5s
esuite-eliatra-suite-data-0                       1/1     Running     0          7m5s
esuite-eliatra-suite-master-0                     1/1     Running     0          7m5s
esuite-eliatra-suite-osd-0                        1/1     Running     0          7m5s
esuite-eliatra-suite-spctl-initialize-rx4bd       0/1     Completed   0          7m5s

you can proceed.

Login into OpenSearch Dashboards

Execute
minikube -p eliatra-suite  kubectl -- get secrets esuite-eliatra-suite-passwd-secret -o jsonpath='{.data.ES_ADMIN_PWD}' | base64 --decode
to get the randomly created password for the admin user.
Execute
export POD_NAME=$(kubectl get pods --namespace default -l "component=esuite-eliatra-suite,role=osd" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward --namespace default $POD_NAME 5601:5601
and point your browser to https://localhost:5601, accept the self-signed SSL certificate, and login with username: admin and the password from above.
Congratulations. You are now running a Eliatra Suite protected OpenSearch cluster.

Cleanup

To cleanup everything just run minikube delete -p "eliatra-suite". This will delete the minikube nodes and all associated data.

Next Steps

In our next article, we will set up our own Public Key Infrastructure (PKI) for SSL certificates and play around with configuration modifications and add more OpenSearch nodes. In one of the future articles, we will set up a production ready Eliatra Suite protected OpenSearch cluster on Amazon EKS.
Ready to get started?!
Let's work together to navigate your OpenSearch journey. Send us a message and talk to the team today!
Get in touch