elk/elasticsearch.yaml (116 lines of code) (raw):
# https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-virtual-memory.html
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: max-map-count-setter
namespace: elastic-system
labels:
k8s-app: max-map-count-setter
spec:
selector:
matchLabels:
name: max-map-count-setter
template:
metadata:
labels:
name: max-map-count-setter
spec:
nodeSelector:
cloud.google.com/compute-class: "Balanced"
initContainers:
- name: max-map-count-setter
image: docker.io/bash:5.2.15
resources:
requests:
cpu: 10m
memory: 32Mi
ephemeral-storage: 10Mi
limits:
cpu: 10m
memory: 32Mi
ephemeral-storage: 10Mi
securityContext:
privileged: true
runAsUser: 0
command: ["/usr/local/bin/bash", "-e", "-c", "echo 262144 > /proc/sys/vm/max_map_count"]
containers:
- name: sleep
image: docker.io/bash:5.2.15
command: ["sleep", "infinity"]
resources:
requests:
cpu: 10m
memory: 16Mi
ephemeral-storage: 16Mi
limits:
cpu: 10m
memory: 16Mi
ephemeral-storage: 16Mi
---
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: elasticsearch
namespace: elastic-system
spec:
version: 8.8.0
volumeClaimDeletePolicy: DeleteOnScaledownOnly
podDisruptionBudget:
spec:
minAvailable: 2
selector:
matchLabels:
elasticsearch.k8s.elastic.co/cluster-name: elasticsearch
nodeSets:
- name: default
config:
node.roles: ["master", "data", "ingest", "ml", "remote_cluster_client"]
podTemplate:
metadata:
labels:
app.kubernetes.io/name: elasticsearch
app.kubernetes.io/version: "8.8.0"
app.kubernetes.io/component: "elasticsearch"
app.kubernetes.io/part-of: "elk"
spec:
nodeSelector:
cloud.google.com/compute-class: "Balanced"
initContainers:
- name: max-map-count-check
command:
- sh
- -c
- while true; do mmc=$(cat /proc/sys/vm/max_map_count); if test ${mmc} -eq 262144; then exit 0; fi; sleep 1; done
resources:
requests:
memory: 16Mi
cpu: 10m
ephemeral-storage: 16Mi
limits:
memory: 16Mi
cpu: 10m
ephemeral-storage: 16Mi
containers:
- name: elasticsearch
resources:
requests:
memory: 4Gi
cpu: 1000m
ephemeral-storage: 1Gi
limits:
memory: 4Gi
cpu: 1000m
ephemeral-storage: 1Gi
env:
- name: ES_JAVA_OPTS
value: "-Xms2g -Xmx2g"
count: 3
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: 2Gi
storageClassName: standard-rwo