added repo
This commit is contained in:
+181
@@ -0,0 +1,181 @@
|
||||
# Elasticsearch for observability: logs, traces (via APM), hot/warm tiers.
|
||||
# Stack monitoring: metrics + logs ship to eck-observability-monitoring-prd (ECK-managed ref).
|
||||
# Topology: 3× (master + data_hot + ingest), 2× (data_warm + ingest), 6g heap, 500Gi disk per node.
|
||||
# Tolerations: align with your GKE node pool taint (key/value below).
|
||||
# ILM: configure index templates to route hot → warm (data_hot / data_warm) in Kibana / API.
|
||||
# SSO: Google login is handled at nginx + oauth2-proxy (ingress), not Elasticsearch OIDC (Platinum).
|
||||
apiVersion: elasticsearch.k8s.elastic.co/v1
|
||||
kind: Elasticsearch
|
||||
metadata:
|
||||
name: eck-observability-prd
|
||||
namespace: eck-observability-prd
|
||||
spec:
|
||||
version: 9.3.1
|
||||
monitoring:
|
||||
metrics:
|
||||
elasticsearchRefs:
|
||||
- name: eck-observability-monitoring-prd
|
||||
namespace: eck-observability-prd
|
||||
logs:
|
||||
elasticsearchRefs:
|
||||
- name: eck-observability-monitoring-prd
|
||||
namespace: eck-observability-prd
|
||||
nodeSets:
|
||||
# 3 nodes: master-eligible + data_hot + ingest (schedule on tainted pool)
|
||||
- name: hot
|
||||
count: 9
|
||||
config:
|
||||
node.roles: ["data_hot", "ingest", "data_content", "transform"]
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: elasticsearch-data
|
||||
spec:
|
||||
storageClassName: gke-hyperdisk-balanced-35k
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 4Ti
|
||||
podTemplate:
|
||||
metadata:
|
||||
labels:
|
||||
elasticsearch.k8s.elastic.co/service-account: eck-observability-es-sa-prd
|
||||
elasticsearch.k8s.elastic.co/nodeset: hot
|
||||
elasticsearch.k8s.elastic.co/tier: hot-warm-data
|
||||
elasticsearch.k8s.elastic.co/tier22: hot-warm-data-22
|
||||
annotations:
|
||||
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
|
||||
spec:
|
||||
serviceAccountName: eck-observability-es-sa-prd
|
||||
# Tolerations for dedicated ES node pool (edit key/value to match your taint)
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: elastic-observability-hot-nodes
|
||||
operator: Equal
|
||||
value: "true"
|
||||
nodeSelector:
|
||||
elastic-observability-hot-nodes: "true"
|
||||
initContainers:
|
||||
- name: sysctl
|
||||
securityContext:
|
||||
privileged: true
|
||||
runAsUser: 0
|
||||
command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
|
||||
containers:
|
||||
- name: elasticsearch
|
||||
env:
|
||||
- name: ES_JAVA_OPTS
|
||||
value: "-Xms31g -Xmx31g"
|
||||
resources:
|
||||
requests:
|
||||
memory: 110Gi
|
||||
cpu: "26"
|
||||
limits:
|
||||
memory: 110Gi
|
||||
cpu: "28"
|
||||
|
||||
# 2 nodes: data_warm + ingest (schedule on tainted pool)
|
||||
- name: warm
|
||||
count: 6
|
||||
config:
|
||||
node.roles: ["data_warm", "ingest", "data_content"]
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: elasticsearch-data
|
||||
spec:
|
||||
storageClassName: gke-hyperdisk-ssd
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 6.5Ti
|
||||
podTemplate:
|
||||
metadata:
|
||||
labels:
|
||||
elasticsearch.k8s.elastic.co/service-account: eck-observability-es-sa-prd
|
||||
elasticsearch.k8s.elastic.co/nodeset: warm
|
||||
elasticsearch.k8s.elastic.co/tier: hot-warm-data
|
||||
annotations:
|
||||
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
|
||||
spec:
|
||||
serviceAccountName: eck-observability-es-sa-prd
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: elastic-observability-warm-nodes
|
||||
operator: Equal
|
||||
value: "true"
|
||||
nodeSelector:
|
||||
elastic-observability-warm-nodes: "true"
|
||||
initContainers:
|
||||
- name: sysctl
|
||||
securityContext:
|
||||
privileged: true
|
||||
runAsUser: 0
|
||||
command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
|
||||
containers:
|
||||
- name: elasticsearch
|
||||
env:
|
||||
- name: ES_JAVA_OPTS
|
||||
value: "-Xms31g -Xmx31g"
|
||||
resources:
|
||||
requests:
|
||||
memory: 107Gi
|
||||
cpu: "24"
|
||||
limits:
|
||||
memory: 107Gi
|
||||
cpu: "26"
|
||||
|
||||
# 3 nodes: master-only (dedicated cluster state management)
|
||||
- name: master
|
||||
count: 3
|
||||
config:
|
||||
node.roles: ["master"]
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: elasticsearch-data
|
||||
spec:
|
||||
storageClassName: gke-hyperdisk-ssd
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 200Gi
|
||||
podTemplate:
|
||||
metadata:
|
||||
labels:
|
||||
elasticsearch.k8s.elastic.co/service-account: eck-observability-es-sa-prd
|
||||
elasticsearch.k8s.elastic.co/nodeset: master
|
||||
annotations:
|
||||
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
|
||||
spec:
|
||||
serviceAccountName: eck-observability-es-sa-prd
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: elastic-observability-master-nodes
|
||||
operator: Equal
|
||||
value: "true"
|
||||
nodeSelector:
|
||||
elastic-observability-master-nodes: "true"
|
||||
initContainers:
|
||||
- name: sysctl
|
||||
securityContext:
|
||||
privileged: true
|
||||
runAsUser: 0
|
||||
command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
|
||||
containers:
|
||||
- name: elasticsearch
|
||||
env:
|
||||
- name: ES_JAVA_OPTS
|
||||
value: "-Xms5g -Xmx5g"
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Gi
|
||||
cpu: "5"
|
||||
limits:
|
||||
memory: 10Gi
|
||||
cpu: "6"
|
||||
|
||||
http:
|
||||
tls:
|
||||
selfSignedCertificate:
|
||||
disabled: true
|
||||
Reference in New Issue
Block a user