Elasticsearch-triple
Elasticsearch is an open-source distributed search and analytics engine used for log analytics. This package deploys a three-node Elasticsearch cluster on Kubernetes.
elasticsearch-triple is a high availability setup of elasticsearch, that sets
up a 3-node cluster of elasticsearch for a robust and reliable setup.
Requirements
- Kubernetes >=
1.20.0 - Kustomize >=
v3.3.X - prometheus-operator
Prometheus Operator is necessary since we configure a
ServiceMonitorto make some metrics available fromelasticsearchon prometheus. Please refer, `elasticsearch-single to read about the available Prometheus rules.
Image repository and tag
- Elasticsearch image:
elasticsearch/elasticsearch:7.16.2 - Elasticsearch repo: Elasticsearch on Github
- Elasticsearch documentation: Elasticsearch Homepage
Configuration
Fury distribution Elasticsearch Triple is deployed with the following configuration:
- Elasticsearch cluster with
3nodes - Listens on port
9200for client connections - Listens on port
9300for node-to-node connections - Uses default unicast Zen Discovery module to discover Elasticsearch nodes
- Resource limits are
2000mfor CPU and4Gfor memory - Requires
30Gistorage - Only a single Elasticsearch node can be deployed on each node of the cluster
- Prometheus exporter to expose Elasticsearch metrics
- Metrics are scraped by Prometheus every
30s
Deployment
You can deploy Elasticsearch Triple by running the following command in the root of the project:
kustomize build | kubectl apply -f -
To learn how to customize compute resources for Elasticsearch please follow the example.