Last active
May 16, 2023 13:39
-
-
Save pyk/3fc87db27eed864e354974bc25aabf88 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apps/v1 | |
kind: StatefulSet | |
metadata: | |
name: elasticsearch | |
labels: | |
service: elasticsearch | |
spec: | |
serviceName: es | |
# NOTE: This is number of nodes that we want to run | |
# you may update this | |
replicas: 5 | |
selector: | |
matchLabels: | |
service: elasticsearch | |
template: | |
metadata: | |
labels: | |
service: elasticsearch | |
spec: | |
terminationGracePeriodSeconds: 300 | |
initContainers: | |
# NOTE: | |
# This is to fix the permission on the volume | |
# By default elasticsearch container is not run as | |
# non root user. | |
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults | |
- name: fix-the-volume-permission | |
image: busybox | |
command: | |
- sh | |
- -c | |
- chown -R 1000:1000 /usr/share/elasticsearch/data | |
securityContext: | |
privileged: true | |
volumeMounts: | |
- name: data | |
mountPath: /usr/share/elasticsearch/data | |
# NOTE: | |
# To increase the default vm.max_map_count to 262144 | |
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode | |
- name: increase-the-vm-max-map-count | |
image: busybox | |
command: | |
- sysctl | |
- -w | |
- vm.max_map_count=262144 | |
securityContext: | |
privileged: true | |
# To increase the ulimit | |
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults | |
- name: increase-the-ulimit | |
image: busybox | |
command: | |
- sh | |
- -c | |
- ulimit -n 65536 | |
securityContext: | |
privileged: true | |
containers: | |
- name: elasticsearch | |
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4 | |
ports: | |
- containerPort: 9200 | |
name: http | |
- containerPort: 9300 | |
name: tcp | |
# NOTE: you can increase this resources | |
resources: | |
requests: | |
memory: 8Gi | |
limits: | |
memory: 16Gi | |
env: | |
# NOTE: the cluster name; update this | |
- name: cluster.name | |
value: elasticsearch-cluster | |
- name: node.name | |
valueFrom: | |
fieldRef: | |
fieldPath: metadata.name | |
# NOTE: This will tell the elasticsearch node where to connect to other nodes to form a cluster | |
- name: discovery.zen.ping.unicast.hosts | |
value: "elasticsearch-0.es.default.svc.cluster.local,elasticsearch-1.es.default.svc.cluster.local,elasticsearch-2.es.default.svc.cluster.local,elasticsearch-3.es.default.svc.cluster.local,elasticsearch-4.es.default.svc.cluster.local" | |
# NOTE: You can increase the heap size | |
- name: ES_JAVA_OPTS | |
value: -Xms4g -Xmx4g | |
volumeMounts: | |
- name: data | |
mountPath: /usr/share/elasticsearch/data | |
volumeClaimTemplates: | |
- metadata: | |
name: data | |
spec: | |
accessModes: | |
- ReadWriteOnce | |
storageClassName: ssd | |
# NOTE: You can increase the storage size | |
resources: | |
requests: | |
storage: 500Gi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hey. Thanks for the sample. Very useful! You may already be aware of this, but you have an extra space on the name and value lines for the ES_JAVA_OPTS which causes "error: error parsing elasticsearch.yaml: error converting YAML to JSON: yaml: line 84: did not find expected '-' indicator"