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.
- Install Helm if not already installed.
- Install Docker on your local machine if not already installed. Make sure the Docker engine has assigned the necessary resources.
- Install minikube if not already installed.
- Start Docker and check that it is running by executing
docker run hello-world
- Start minkube:
copyminikube 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:
copyhelm 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.
copyhelm 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:
copyNAME 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
copyminikube -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
copyexport 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.