磐基2.0搭建es集群
1 环境简述搭建es集群需要使用的技术如下:k8s集群、StatefulSet控制器、Service(NodePort)服务、PV、PVC、volumeClaimTemplates(存储卷申请模板)。StatefulSet控制器创建的Pod适合用于分布式存储系统,它最大的特点是各个Pod的数据不一样,各个Pod无法使用同一个存储卷。k8s安装elasticsearch集群_k8s部署elastic
·
参考:
k8s安装elasticsearch集群
参考2
云原生 | K8S集群部署es集群+kibana
参考3
vim es.yamlapiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: elasticsearch-pdb
spec:
selector:
matchLabels:
app: elasticsearch
maxUnavailable: 1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
spec:
serviceName: elasticsearch-hs
replicas: 3
selector:
matchLabels:
app: elasticsearch
updateStrategy:
type: RollingUpdate
podManagementPolicy: Parallel
template:
metadata:
labels:
app: elasticsearch
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "app"
operator: In
values:
- elasticsearch
topologyKey: "kubernetes.io/hostname"
containers:
- name: elasticsearch
image: harbor.kp.com/keepwork/elasticsearch:7.5.0
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 0.01
memory: 2Gi
ports:
- containerPort: 9200
name: rest
protocol: TCP
- containerPort: 9300
name: inter-node
protocol: TCP
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
- name: plugins
mountPath: /usr/share/elasticsearch/plugins
env:
- name: cluster.name
value: k8s-logs
- name: node.name
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: discovery.zen.ping.unicast.hosts
value: "elasticsearch-0.elasticsearch-hs,elasticsearch-1.elasticsearch-hs,elasticsearch-2.elasticsearch-hs"
- name: discovery.zen.minimum_master_nodes
value: "2"
- name: cluster.initial_master_nodes #此参数es7以上才能设置
value: elasticsearch-0,elasticsearch-1
- name: ES_JAVA_OPTS
value: "-Xms1536m -Xmx1536m"
- name: TZ
value: "Asia/Shanghai"
initContainers:
- name: fix-permissions-data
image: registry.cn-hangzhou.aliyuncs.com/caosx-public/busybox:1.28.3
command: ["sh", "-c", "chown -R 1000:1000 /usr/share/elasticsearch/data"]
securityContext:
privileged: true
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
- name: fix-permissions-plugins
image: registry.cn-hangzhou.aliyuncs.com/caosx-public/busybox:1.28.3
command: ["sh", "-c", "rm -fr /usr/share/elasticsearch/plugins/lost+found && chown -R 1000:1000 /usr/share/elasticsearch/plugins"]
securityContext:
privileged: true
volumeMounts:
- name: plugins
mountPath: /usr/share/elasticsearch/plugins
- name: increase-vm-max-map
image: registry.cn-hangzhou.aliyuncs.com/caosx-public/busybox:1.28.3
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
- name: increase-fd-ulimit
image: registry.cn-hangzhou.aliyuncs.com/caosx-public/busybox:1.28.3
command: ["sh", "-c", "ulimit -n 65536"]
securityContext:
privileged: true
volumeClaimTemplates:
- metadata:
name: data
labels:
app: elasticsearch
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: local
resources:
requests:
storage: 20Gi
- metadata:
name: plugins
labels:
app: elasticsearch
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: local
resources:
requests:
storage: 200Mi
---
kind: Service
apiVersion: v1
metadata:
name: elasticsearch-hs
labels:
app: elasticsearch
spec:
selector:
app: elasticsearch
clusterIP: None
ports:
- port: 9300
targetPort: 9300
---
kind: Service
apiVersion: v1
metadata:
name: elasticsearch-cs
labels:
app: elasticsearch
spec:
selector:
app: elasticsearch
ports:
- port: 9200
targetPort: 9200
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: elasticsearch-ingress
spec:
rules:
- host: elasticsearch.gdcattsoft2.com
http:
paths:
- path: /
backend:
serviceName: elasticsearch-cs
servicePort: 9200
更多推荐
已为社区贡献3条内容
所有评论(0)