k8s安装es集群版
2023-06-13 09:12:51 时间
这里使用官方示例 Elasticsearch StatefulSet 将使用 EmptyDir 卷来存储数据。pod 终止时,EmptyDir 将被擦除,后续将存储更改为永久卷声明即可
# 1.编辑es-statefulset.yml
点击查看
# RBAC authn and authz
apiVersion: v1
kind: ServiceAccount
metadata:
name: elasticsearch-logging
namespace: summer
labels:
k8s-app: elasticsearch-logging
addonmanager.kubernetes.io/mode: Reconcile
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: elasticsearch-logging
labels:
k8s-app: elasticsearch-logging
addonmanager.kubernetes.io/mode: Reconcile
rules:
- apiGroups:
- ""
resources:
- "services"
- "namespaces"
- "endpoints"
verbs:
- "get"
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: summer
name: elasticsearch-logging
labels:
k8s-app: elasticsearch-logging
addonmanager.kubernetes.io/mode: Reconcile
subjects:
- kind: ServiceAccount
name: elasticsearch-logging
namespace: summer
apiGroup: ""
roleRef:
kind: ClusterRole
name: elasticsearch-logging
apiGroup: ""
---
# Elasticsearch deployment itself
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch-logging
namespace: summer
labels:
k8s-app: elasticsearch-logging
version: v7.4.3
addonmanager.kubernetes.io/mode: Reconcile
spec:
serviceName: elasticsearch-logging
replicas: 3
selector:
matchLabels:
k8s-app: elasticsearch-logging
version: v7.4.3
template:
metadata:
labels:
k8s-app: elasticsearch-logging
version: v7.4.3
spec:
serviceAccountName: elasticsearch-logging
containers:
- image: quay.io/fluentd_elasticsearch/elasticsearch:v7.4.3
name: elasticsearch-logging
imagePullPolicy: Always
resources:
# need more cpu upon initialization, therefore burstable class
limits:
cpu: 1000m
memory: 3Gi
requests:
cpu: 100m
memory: 3Gi
ports:
- containerPort: 9200
name: db
protocol: TCP
- containerPort: 9300
name: transport
protocol: TCP
livenessProbe:
tcpSocket:
port: transport
initialDelaySeconds: 5
timeoutSeconds: 10
readinessProbe:
tcpSocket:
port: transport
initialDelaySeconds: 5
timeoutSeconds: 10
volumeMounts:
- name: elasticsearch-logging
mountPath: /data
env:
- name: "NAMESPACE"
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: "MINIMUM_MASTER_NODES"
value: "1"
volumes:
- name: elasticsearch-logging
emptyDir: {}
# Elasticsearch requires vm.max_map_count to be at least 262144.
# If your OS already sets up this number to a higher value, feel free
# to remove this init container.
initContainers:
- image: alpine:3.6
command: ["/sbin/sysctl", "-w", "vm.max_map_count=262144"]
name: elasticsearch-logging-init
securityContext:
privileged: true
# 2.编辑es-service.yml
点击查看
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-logging
namespace: summer
labels:
k8s-app: elasticsearch-logging
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "Elasticsearch"
spec:
type: NodePort
ports:
- name: db
port: 9200
protocol: TCP
targetPort: 9200
nodePort: 30000
- name: transport
port: 9300
protocol: TCP
targetPort: 9300
publishNotReadyAddresses: true
selector:
k8s-app: elasticsearch-logging
sessionAffinity: None
# 3.执行yml文件
[root@master elasticsearch]# kubectl create -f es-service.yml
[root@master elasticsearch]# kubectl create -f es-statefulset.yml
# 4.验证
[root@master elasticsearch]# kubectl get statefulset -n summer
NAME READY AGE
elasticsearch-logging 3/3 110m
[root@master elasticsearch]# kubectl get pod -n summer
NAME READY STATUS RESTARTS AGE
elasticsearch-logging-0 1/1 Running 0 110m
elasticsearch-logging-1 1/1 Running 0 110m
elasticsearch-logging-2 1/1 Running 0 109m
[root@master elasticsearch]# kubectl get svc -n summer
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch-logging NodePort 10.105.199.132 <none> 9200:30000/TCP,9300:30499/TCP 111m
此时用head工具连接集群任意节点ip:30000验证即可
相关文章
- k8s系列(1)-腾讯云CVM手动部署K8S_Dashboard安装2
- ES 聚合排序
- K8s基本概念入门_k8s菜鸟教程
- es集群搭建_k8s和docker搭建es集群
- 【ES三周年】+windows安装es、kibana教程
- ES系列二、CentOS7安装ES head6.3.1
- mac 上学习k8s系列(46)canal同步mysql到es
- mac 上学习k8s系列(47)分布式追踪jaeger+es
- mac 上学习k8s系列(48)es +grafana可视化
- 【ES三周年】Informer实战之持久化K8s事件至ElasticSearch
- 【ES三周年】+Elasticsearch 在大数据的应用
- [ES三周年]Nginx攻击方式和解决方案
- 【ES三周年】SpringBoot整合elasticsearch存储抖音短视频数据实践
- ES集群license过期current license is non-compliant for [security]
- IOS – OpenGL ES 设置图像滤镜 GPUImageSoftEleganceFilter
- 【ES三周年】Linux安装ElasticSearch典藏教程
- 【ES三周年】03-ElasticSearch环境
- ES与MySQL:混合技术的优势(es和mysql)
- 实现跨越时效的大数据分析ES与Redis的实际应用(真实应用es和redis)
- 使用ES连接Oracle一种简单的解决方案(es连接oracle)
- 使用ES查询Oracle新方法进行数据挖掘(es查询oracle)
- 简单快捷ES数据导出到Oracle(es数据导出oracle)
- 比较Es与Oracle的优势与劣势(Es和oracle优缺点)
- ES与Oracle数据同步技术研究(es oracle 同步)
- 抉择数据存储,ElasticSearch还是Redis(数据放es还是redis)
- 使用Redis导入ES实现高效数据迁移(把redis数据导入es)
- 抉择存储数据的最佳选择 ES 还是 Redis(存es还是redis)
- Oracle与ES协同同步实现最佳性能(oracle与es同步)