Elastic Cloud on Kubernetes quickstart deployment (for dev, not production). Instructions for deployment can be found in Elastic's documentation. The only additional piece added to it is a LoadBalancer service to make it externally available. If you also need to reach Elasticsearch from an external service, consider modifying the elasticsearch-single-node.yml
file's spec.
For production, it is recommended to leverage Elastic's helm charts, along with an external network load balancer, like MetalLB, and an internal ingress controller, like NGINX ingress controller as suggested here for bare metal deployments. For cloud deployments, consider your cloud's native load balancer, paired with an ingress controller of your choice.
- Install the Elastic Cloud on Kubernetes operator
kubectl create -f https://download.elastic.co/downloads/eck/2.6.1/crds.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/2.6.1/operator.yaml
- Deploy Elasticseach
kubectl apply -f ./elasticsearch-single-node.yml
- Deploy a persistent volume for Elasticsearch
kubectl apply -f ./elasticsearch-pv.yml
- Deploy a Kibana instance
kubectl apply -f ./kibana-single-node.yml
- Identify the node running kubernetes
kubectl get pods -o wide
- Connect to the node where Kibana lives on the port specified by the quickstart-kb-http service (Example: https://<node_ip>:<service_port>)
kubectl get services quickstart-kb-http