forked from HariSekhon/Kubernetes-configs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
elasticsearch-cluster.yaml
74 lines (71 loc) · 2.62 KB
/
elasticsearch-cluster.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#
# Author: Hari Sekhon
# Date: 2022-08-18 14:55:44 +0100 (Thu, 18 Aug 2022)
#
# vim:ts=2:sts=2:sw=2:et
#
# https://github.com/HariSekhon/Kubernetes-configs
#
# License: see accompanying Hari Sekhon LICENSE file
#
# If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
#
# https://www.linkedin.com/in/HariSekhon
#
# ============================================================================ #
# Elasticsearch Cluster for ECK operator
# ============================================================================ #
# https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-elasticsearch-specification.html
---
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: mycluster # XXX: Edit
namespace: elasticsearch # can be any namespace, the ECK hooks will launch a cluster in the same namespace
spec:
version: 8.3.3 # XXX: Edit
nodeSets:
- name: default
count: 1 # XXX: Edit
# bad for performance, added init container to increase mmap address space further down instead, see also:
#
# https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-virtual-memory.html
#
#config:
# node.store.allow_mmap: false
#
podTemplate:
spec:
initContainers:
- name: sysctl
securityContext:
privileged: true
runAsUser: 0
command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
containers:
- name: elasticsearch
resources:
requests:
memory: 2.3Gi
cpu: 500m
limits:
memory: 4Gi
cpu: "1"
env:
- name: ES_JAVA_OPTS
value: "-Xms2g -Xmx2g"
# make the topology.kubernetes.io/zone annotation available as an environment variable and use it as a cluster routing allocation attribute
- name: ZONE
valueFrom:
fieldRef:
fieldPath: metadata.annotations['topology.kubernetes.io/zone']
volumeClaimTemplates:
- metadata:
name: elasticsearch-data # Do not change this name unless you set up a volume mount for the data path
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
#storageClassName: standard-resizeable # XXX: add storageclass-gcp-standard-resizeable.yaml to enable