This Helm chart deploys the ELK Stack (Elasticsearch, Logstash, and Kibana) on Kubernetes.
- Elasticsearch: Distributed search and analytics engine
- Logstash: Data processing pipeline
- Kibana: Data visualization and exploration tool
# Add the chart repository (if using a repository)
helm repo add elk-stack .
# Install the chart
helm install my-elk-stack ./elk-stack
# Or install with custom values
helm install my-elk-stack ./elk-stack -f custom-values.yaml
The following table lists the configurable parameters and their default values:
| Parameter |
Description |
Default |
global.storageClass |
Global storage class |
"" |
| Parameter |
Description |
Default |
elasticsearch.enabled |
Enable Elasticsearch |
true |
elasticsearch.replicas |
Number of Elasticsearch replicas |
3 |
elasticsearch.image.repository |
Elasticsearch image repository |
docker.elastic.co/elasticsearch/elasticsearch |
elasticsearch.image.tag |
Elasticsearch image tag |
8.11.0 |
elasticsearch.persistence.enabled |
Enable persistent storage |
true |
elasticsearch.persistence.size |
Storage size |
10Gi |
| Parameter |
Description |
Default |
logstash.enabled |
Enable Logstash |
true |
logstash.replicas |
Number of Logstash replicas |
2 |
logstash.image.repository |
Logstash image repository |
docker.elastic.co/logstash/logstash |
logstash.image.tag |
Logstash image tag |
8.11.0 |
| Parameter |
Description |
Default |
kibana.enabled |
Enable Kibana |
true |
kibana.replicas |
Number of Kibana replicas |
1 |
kibana.image.repository |
Kibana image repository |
docker.elastic.co/kibana/kibana |
kibana.image.tag |
Kibana image tag |
8.11.0 |
kibana.service.type |
Kibana service type |
LoadBalancer |
- Kibana: Access via LoadBalancer service on port 5601
- Elasticsearch: Internal service on port 9200
- Logstash: Internal service on port 5044 for Beats input
You can customize the deployment by creating a custom-values.yaml file:
elasticsearch:
replicas: 1
persistence:
size: 5Gi
kibana:
service:
type: NodePort
logstash:
config: |
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "custom-%{+YYYY.MM.dd}"
}
}
helm uninstall my-elk-stack
- This chart uses Elasticsearch 8.11.0 with security disabled for simplicity
- Persistent volumes are used for Elasticsearch data
- The Logstash configuration can be customized via values.yaml
- Kibana is exposed via LoadBalancer by default