1. master节点
[admin@master01 es]$vim es-master.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: es-master
namespace: logging
spec:
serviceName: "es-svc"
replicas: 3
selector:
matchLabels:
app: es
role: master
template:
metadata:
labels:
app: es
role: master
spec:
imagePullSecrets:
- name: harbor-admin
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["es"]
- key: role
operator: In
values: ["master"]
topologyKey: "kubernetes.io/hostname"
initContainers:
- name: change-permissions
image: harbor.xx.com/library/busybox
command: ["sh","-c","chown 1000:1000 /usr/share/elasticsearch/data; sysctl -w vm.max_map_count=262144; ulimit -n 65535"]
securityContext:
privileged: true
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
containers:
- name: es
image: harbor.xx.com/library/elasticsearch:7.17.6
ports:
- name: cluster
containerPort: 9200
- name: transport
containerPort: 9300
resources:
limits:
cpu: 1000m
memory: 1024Mi
volumeMounts:
- name: data
mountPath: /usr/share/elasticserarch/data
env:
- name: ES_JAVA_OPTS
value: "-Xms512m -Xmx512m"
- name: cluster.name
value: "es-aaa"
- name: node.name
valueFrom:
fieldRef:
fieldPath: "metadata.name"
- name: node.master
value: "true"
- name: node.data
value: "false"
- name: discovery.seed_hosts
value: "es-master-0.es-svc,es-master-1.es-svc,es-master-2.es-svc"
- name: cluster.initial_master_nodes
value: "es-master-0,es-master-1,es-master-2"
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: "nfs-provisioner-storage"
resources:
requests:
storage: 50Gi
2. data节点
[admin@master01 es]$vim 03-es-data.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: es-data
namespace: logging
spec:
serviceName: "es-svc"
replicas: 2
selector:
matchLabels:
app: es
role: data
template:
metadata:
labels:
app: es
role: data
spec:
imagePullSecrets:
- name: harbor-admin
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["es"]
- key: role
operator: In
values: ["data"]
topologyKey: "kubernetes.io/hostname"
initContainers:
- name: fix-permission
image: busybox
command: ["sh","-c","chown 1000:1000 /usr/share/elasticsearch/data; sysctl -w vm.max_map_count=262144; ulimit -n 65535"]
securityContext:
privileged: true
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
containers:
- name: es
image: harbor.xx.com/library/elasticsearch:7.17.6
ports:
- name: cluster
containerPort: 9200
- name: transport
containerPort: 9300
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
resources:
limits:
cpu: 1000m
memory: 1024Mi
env:
- name: ES_JAVA_OPTS
value: "-Xms512m -Xmx512m"
- name: cluster.name
value: "es-aaa"
- name: node.name
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: node.master
value: "false"
- name: node.data
value: "true"
- name: discovery.seed_hosts
value: "es-master-0.es-svc,es-master-1.es-svc,es-master-2.es-svc"
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: "nfs-provisioner-storage"
resources:
requests:
storage: 50Gi
3、headless-svc
[admin@master01 es]$vim 03-es-data.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: es-data
namespace: logging
spec:
serviceName: "es-svc"
replicas: 2
selector:
matchLabels:
app: es
role: data
template:
metadata:
labels:
app: es
role: data
spec:
imagePullSecrets:
- name: harbor-admin
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["es"]
- key: role
operator: In
values: ["data"]
topologyKey: "kubernetes.io/hostname"
initContainers:
- name: fix-permission
image: busybox
command: ["sh","-c","chown 1000:1000 /usr/share/elasticsearch/data; sysctl -w vm.max_map_count=262144; ulimit -n 65535"]
securityContext:
privileged: true
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
containers:
- name: es
image: harbor.xingxingcar.com/library/elasticsearch:7.17.6
ports:
- name: cluster
containerPort: 9200
- name: transport
containerPort: 9300
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
resources:
limits:
cpu: 1000m
memory: 1024Mi
env:
- name: ES_JAVA_OPTS
value: "-Xms512m -Xmx512m"
- name: cluster.name
value: "es-aaa"
- name: node.name
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: node.master
value: "false"
- name: node.data
value: "true"
- name: discovery.seed_hosts
value: "es-master-0.es-svc,es-master-1.es-svc,es-master-2.es-svc"
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: "nfs-provisioner-storage"
resources:
requests:
storage: 50Gi