k8sConfigs/elasticsearch-statefulSet.yaml
zhangkun9038@dingtalk.com 771073217d es-2 master
2025-03-31 12:01:16 +08:00

397 lines
12 KiB
YAML

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch-0
namespace: efk
spec:
serviceName: elasticsearch-service
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
initContainers:
- name: init-sysctl
image: busybox
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:8.8.0
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
env:
- name: TZ
value: Asia/Shanghai
- name: cluster.name
value: "my-es-cluster"
- name: node.name
value: "elasticsearch-0"
- name: discovery.seed_hosts
value: "elasticsearch-0.efk.svc.cluster.local,elasticsearch-1.efk.svc.cluster.local,elasticsearch-2.efk.svc.cluster.local,elasticsearch-3.efk.svc.cluster.local"
- name: cluster.initial_master_nodes
value: "[elasticsearch-0, elasticsearch-1, elasticsearch-2, elasticsearch-3]"
- name: xpack.security.enabled
value: "false"
- name: ES_JAVA_OPTS
value: "-Xms6g -Xmx6g"
- name: node.roles
value: "[master, data_hot, data_content, remote_cluster_client]"
resources:
requests:
memory: "6Gi"
cpu: "2"
limits:
memory: "8Gi"
cpu: "4"
volumeMounts:
- name: tz-db
mountPath: /usr/share/zoneinfo
- name: tz-config
mountPath: /etc/localtime
subPath: timezone
- name: data
mountPath: /usr/share/elasticsearch/data
- name: config-volume
mountPath: /usr/share/elasticsearch/config
- name: snapshot-volume
mountPath: /usr/share/elasticsearch/snapshot
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["elasticsearch"]
topologyKey: "kubernetes.io/hostname"
nodeSelector:
kubernetes.io/hostname: miracle
volumes:
- name: tz-db
hostPath:
path: /usr/share/zoneinfo
type: Directory
- name: tz-config
configMap:
name: timezone-config
items:
- key: timezone
path: timezone
- name: data
persistentVolumeClaim:
claimName: "elasticsearch-data-pvc-elasticsearch-0"
- name: config-volume
persistentVolumeClaim:
claimName: "elasticsearch-config-pvc-elasticsearch-0"
- name: snapshot-volume
persistentVolumeClaim:
claimName: "elasticsearch-snapshot-pvc-elasticsearch-2"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch-1
namespace: efk
spec:
serviceName: elasticsearch-service
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
initContainers:
- name: init-sysctl
image: busybox
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:8.8.0
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
env:
- name: TZ
value: Asia/Shanghai
- name: cluster.name
value: "my-es-cluster"
- name: node.name
value: "elasticsearch-1"
- name: discovery.seed_hosts
value: "elasticsearch-0.efk.svc.cluster.local,elasticsearch-1.efk.svc.cluster.local,elasticsearch-2.efk.svc.cluster.local,elasticsearch-3.efk.svc.cluster.local"
- name: cluster.initial_master_nodes
value: "[elasticsearch-0, elasticsearch-1, elasticsearch-2, elasticsearch-3]"
- name: xpack.security.enabled
value: "false"
- name: ES_JAVA_OPTS
value: "-Xms4g -Xmx4g"
- name: node.roles
value: "[data_warm, master, data_content,remote_cluster_client]"
resources:
requests:
memory: "4Gi"
cpu: "1"
limits:
memory: "6Gi"
cpu: "2"
volumeMounts:
- name: tz-db
mountPath: /usr/share/zoneinfo
- name: tz-config
mountPath: /etc/localtime
subPath: timezone
- name: data
mountPath: /usr/share/elasticsearch/data
- name: config-volume
mountPath: /usr/share/elasticsearch/config
- name: snapshot-volume
mountPath: /usr/share/elasticsearch/snapshot
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["elasticsearch"]
topologyKey: "kubernetes.io/hostname"
nodeSelector:
kubernetes.io/hostname: lydia
volumes:
- name: tz-db
hostPath:
path: /usr/share/zoneinfo
type: Directory
- name: tz-config
configMap:
name: timezone-config
items:
- key: timezone
path: timezone
- name: data
persistentVolumeClaim:
claimName: "elasticsearch-data-pvc-elasticsearch-1"
- name: config-volume
persistentVolumeClaim:
claimName: "elasticsearch-config-pvc-elasticsearch-1"
- name: snapshot-volume
persistentVolumeClaim:
claimName: "elasticsearch-snapshot-pvc-elasticsearch-2"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch-2
namespace: efk
spec:
serviceName: elasticsearch-service
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
initContainers:
- name: init-sysctl
image: busybox
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:8.8.0
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
env:
- name: TZ
value: Asia/Shanghai
- name: cluster.name
value: "my-es-cluster"
- name: node.name
value: "elasticsearch-2"
- name: discovery.seed_hosts
value: "elasticsearch-0.efk.svc.cluster.local,elasticsearch-1.efk.svc.cluster.local,elasticsearch-2.efk.svc.cluster.local,elasticsearch-3.efk.svc.cluster.local"
- name: cluster.initial_master_nodes
value: "[elasticsearch-0, elasticsearch-1, elasticsearch-2, elasticsearch-3]"
- name: xpack.security.enabled
value: "false"
- name: ES_JAVA_OPTS
value: "-Xms4g -Xmx4g"
- name: node.roles
value: "[data_cold, master, remote_cluster_client]"
resources:
requests:
memory: "4Gi"
cpu: "1"
limits:
memory: "6Gi"
cpu: "2"
volumeMounts:
- name: tz-db
mountPath: /usr/share/zoneinfo
- name: tz-config
mountPath: /etc/localtime
subPath: timezone
- name: data
mountPath: /usr/share/elasticsearch/data
- name: config-volume
mountPath: /usr/share/elasticsearch/config
- name: snapshot-volume
mountPath: /usr/share/elasticsearch/snapshot
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["elasticsearch"]
topologyKey: "kubernetes.io/hostname"
nodeSelector:
kubernetes.io/hostname: emma
volumes:
- name: tz-db
hostPath:
path: /usr/share/zoneinfo
type: Directory
- name: tz-config
configMap:
name: timezone-config
items:
- key: timezone
path: timezone
- name: data
persistentVolumeClaim:
claimName: "elasticsearch-data-pvc-elasticsearch-2"
- name: config-volume
persistentVolumeClaim:
claimName: "elasticsearch-config-pvc-elasticsearch-2"
- name: snapshot-volume
persistentVolumeClaim:
claimName: "elasticsearch-snapshot-pvc-elasticsearch-2"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch-3
namespace: efk
spec:
serviceName: elasticsearch-service
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
initContainers:
- name: init-sysctl
image: busybox
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:8.8.0
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
env:
- name: TZ
value: Asia/Shanghai
- name: cluster.name
value: "my-es-cluster"
- name: node.name
value: "elasticsearch-3"
- name: discovery.seed_hosts
value: "elasticsearch-0.efk.svc.cluster.local,elasticsearch-1.efk.svc.cluster.local,elasticsearch-2.efk.svc.cluster.local,elasticsearch-3.efk.svc.cluster.local"
- name: cluster.initial_master_nodes
value: "[elasticsearch-0, elasticsearch-1, elasticsearch-2, elasticsearch-3]"
- name: xpack.security.enabled
value: "false"
- name: ES_JAVA_OPTS
value: "-Xms4g -Xmx4g"
- name: node.roles
value: "[data_warm, master, data_content, remote_cluster_client]"
resources:
requests:
memory: "4Gi"
cpu: "1"
limits:
memory: "6Gi"
cpu: "2"
volumeMounts:
- name: tz-db
mountPath: /usr/share/zoneinfo
- name: tz-config
mountPath: /etc/localtime
- name: data
mountPath: /usr/share/elasticsearch/data
- name: config-volume
mountPath: /usr/share/elasticsearch/config
- name: snapshot-volume
mountPath: /usr/share/elasticsearch/snapshot
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["elasticsearch"]
topologyKey: "kubernetes.io/hostname"
nodeSelector:
kubernetes.io/hostname: niyon
volumes:
- name: tz-db
hostPath:
path: /usr/share/zoneinfo
type: Directory
- name: tz-config
configMap:
name: timezone-config
items:
- key: timezone
path: timezone
- name: data
persistentVolumeClaim:
claimName: "elasticsearch-data-pvc-elasticsearch-3"
- name: config-volume
persistentVolumeClaim:
claimName: "elasticsearch-config-pvc-elasticsearch-3"
- name: snapshot-volume
persistentVolumeClaim:
claimName: "elasticsearch-snapshot-pvc-elasticsearch-2"