直接上yaml内容

# es-cluster.yaml
apiVersion: apps/v1
# 设置控制器
kind: StatefulSet
metadata:name: es-clusternamespace: merry
spec:# 必须设置serviceName: es-cluster-svc# 设置副本数replicas: 3# 设置选择器selector:# 设置标签matchLabels:app: es-net-datatemplate:metadata:# 此处必须要与上面的matchLabels相同labels: app: es-net-dataspec:# 初始化容器# 初始化容器的作用是在应用容器启动之前做准备工作,每个init容器都必须在下一个启动之前成功完成initContainers:- name: increase-vm-max-mapimage: busybox:1.32command: ["sysctl", "-w", "vm.max_map_count=262144"]securityContext:privileged: true- name: increase-fd-ulimitimage: busybox:1.32command: ["sh", "-c", "ulimit -n 65536"]securityContext:privileged: true# 初始化容器结束后,才能继续创建下面的容器containers:- name: es-containerimage: elasticsearch:7.6.2ports:# 容器内端口- name: restcontainerPort: 9200protocol: TCP# 限制CPU数量resources:limits:cpu: 1000mrequests:cpu: 100m # 设置挂载目录volumeMounts:- name: es-datamountPath: /usr/share/elasticsearch/data# 设置环境变量env:# 自定义集群名- name: cluster.namevalue: k8s-es# 定义节点名,使用metadata.name名称- name: node.namevalueFrom:fieldRef:fieldPath: metadata.name# 初始化集群时,ES从中选出master节点- name: cluster.initial_master_nodes# 对应metadata.name名称加编号,编号从0开始value: "es-cluster-0,es-cluster-1,es-cluster-2"- name: discovery.zen.minimum_master_nodesvalue: "2" # 发现节点的地址,discovery.seed_hosts的值应包括所有master候选节点# 如果discovery.seed_hosts的值是一个域名,且该域名解析到多个IP地址,那么es将处理其所有解析的IP地址。- name: discovery.seed_hostsvalue: "es-cluster-svc"# 配置内存- name: ES_JAVA_OPTSvalue: "-Xms1g -Xmx1g"- name: network.hostvalue: "0.0.0.0" volumeClaimTemplates:- metadata:# 对应容器中volumeMounts.namename: es-datalabels:app: es-volumespec:# 存储卷可以被单个节点读写accessModes: [ "ReadWriteOnce" ]# 对应es-nfs-storage-class.yaml中的metadata.namestorageClassName: es-nfs-storage # 申请资源的大小resources:requests:storage: 10Gi
---
# es-service.yaml
apiVersion: v1
kind: Service
metadata:name: es-cluster-svcnamespace: merry
spec:selector:# 注意一定要与"es-cluster.yaml"中spec.selector.matchLabels相同app: es-net-data# 设置服务类型type: NodePortports:- name: rest# 服务端口port: 9200# 应用端口(Pod端口)targetPort: 9200# 映射到主机的端口,端口范围是30000~32767nodePort: 32000- name: socket9300port: 9300targetPort: 9300nodePort: 39300
---

能看懂的人都能明白!

------------------------------------------------改进版本如下----------------------------------------------------------

主要改进地方:

1. 添加时区的环境变量,修改cluster.name值为docker-cluster

2.初始化容器指定数据目录权限

3.添加无头服务headless

apiVersion: apps/v1
kind: StatefulSet
metadata:namespace: merryname: es-cluster
spec:serviceName: elasticsearch-svc-headlessreplicas: 3selector:matchLabels:app: elasticsearchtemplate:metadata:labels:app: elasticsearchspec:initContainers:- name: permissionsimage: busybox:latestcommand: ["sh", "-c", "chown -R 1000:1000 /usr/share/elasticsearch/data"]securityContext:privileged: truevolumeMounts:- name: datamountPath: /usr/share/elasticsearch/data- name: increase-vm-max-mapimage: busybox:latestcommand: ["sysctl", "-w", "vm.max_map_count=262144"]securityContext:privileged: true- name: increase-fd-ulimitimage: busybox:latestcommand: ["sh", "-c", "ulimit -n 65536"]securityContext:privileged: truecontainers:- name: elasticsearchimage: elasticsearch:7.10.2-analysis-hanlpresources:limits:cpu: 1000mrequests:cpu: 100mports:- containerPort: 9200name: restprotocol: TCP- containerPort: 9300name: socketprotocol: TCPvolumeMounts:- name: datamountPath: /usr/share/elasticsearch/dataenv:- name: TZvalue: Asia/Shanghai- name: cluster.namevalue: docker-cluster- name: node.namevalueFrom:fieldRef:fieldPath: metadata.name- name: discovery.seed_hostsvalue: "es-cluster-0.elasticsearch-svc-headless,es-cluster-1.elasticsearch-svc-headless,es-cluster-2.elasticsearch-svc-headless"- name: cluster.initial_master_nodesvalue: "es-cluster-0,es-cluster-1,es-cluster-2"- name: ES_JAVA_OPTSvalue: "-Xms512m -Xmx512m"- name: discovery.zen.minimum_master_nodesvalue: "2"- name: network.hostvalue: "0.0.0.0"volumeClaimTemplates:- metadata:name: datalabels:app: elasticsearchspec:accessModes: [ "ReadWriteOnce" ]storageClassName: managed-nfs-storageresources:requests:storage: 1000Gi
---
kind: Service
apiVersion: v1
metadata:namespace: merryname: elasticsearch-svc-headlesslabels:app: elasticsearch
spec:selector:app: elasticsearchclusterIP: Noneports:- port: 9200name: rest- port: 9300name: socket
---
kind: Service
apiVersion: v1
metadata:namespace: merryname: elasticsearch-svclabels:app: elasticsearch
spec:selector:app: elasticsearchtype: NodePortports:- port: 9200name: rest- port: 9300name: socket

K8S StatefulSet方式部署elasticsearch集群 —— 筑梦之路相关推荐

  1. k8s 部署zookeeper-kafka集群 —— 筑梦之路

    规划:三个zookeeper 三个kafka添加亲和性规则#直接上yaml#zookeeper-deploy.yamlapiVersion: apps/v1 kind: StatefulSet met ...

  2. 基于已有集群动态发现方式部署 Etcd 集群

    https://www.hi-linux.com/posts/19457.html etcd提供了多种部署集群的方式,在「通过静态发现方式部署etcd集群」 一文中我们介绍了如何通过静态发现方式部署集 ...

  3. 部署ElasticSearch集群启动失败

    今天一直在尝试部署启动ElasticSearch集群,但是在启动的时候一直处于报错的状态信息.鉴于之前部署的单节点ElasticSearch能够启动成功,所以排除了安装包的问题. 如下所示的报错信息: ...

  4. K8S中使用显卡GPU(N卡) —— 筑梦之路

    前些年做AI项目的时候经常用到显卡,大多数时候都是传统部署,对于资源的利用率并不高,而显卡也不便宜,K8S集群内调用显卡可以更加细致地进行显卡计算资源的分配,提高资源利用率. 之前记录和显卡相关的一些 ...

  5. 基于Docker方式实现Elasticsearch集群

    文本环境:Docker + (Elasticsearch6.8.5 * 3) 1.拉取Elasticsearch docker pull elasticsearch6.8.5 2.创建es挂载目录 创 ...

  6. 快速搞懂Docker部署ElasticSearch集群

    前言 为什么要用ElasticSearch?我们的应用经常需要添加检索功能,开源的Elastic Search是目前全文检索引擎的首选.它可以快速的存储.搜索和分析海量数据.ElasticSearch ...

  7. k8s容器化部署及集群搭建笔记

    kubeadm部署k8s 将此文章写给我最心爱的女孩 目录 kubeadm部署k8s 1.部署准备工作 小知识 2.安装具体步骤 1.安装docker 2.配置国内镜像加速器 3.添加k8s的阿里云y ...

  8. RKE方式部署Kubernetes集群

    ####1.配置要求link 参考节点要求 https://www.rancher.cn/docs/rancher/v2.x/cn/install-prepare/requirements ####2 ...

  9. Docker部署Elasticsearch集群

    来源:https://www.cnblogs.com/lixuebin/p/10814052.html 参考文档: https://hub.docker.com/r/library/elasticse ...

最新文章

  1. 集生态之力跨城市数字化之难题,英特尔交上了一份完美答卷
  2. search result
  3. sql--找含有制定字符列的表
  4. 计算机科学导论第五版_五月份将开始提供438项免费在线编程和计算机科学课程
  5. OpenGL ES 纹理设置
  6. android 释放bitmap fragment,,为什么重复Replace Fragment会内存泄漏
  7. python hackrf_HackRF固件更新及编译环境搭建
  8. linux重定向命令语法,linux重定向命令应用及语法
  9. vue filters使用
  10. Atitit.软件GUI按钮与仪表盘(01)--js区-----js格式化的使用
  11. 【优化部署】 基于matlab遗传算法求解移动传感器部署优化问题【含Matlab源码 1197期】
  12. 地址转换函数(点分十进制与网络字节序的二进制)
  13. 新闻发布系统(java实现)+论文
  14. 把台式计算机硬盘拆下,台式电脑的硬盘可以拆下来吗
  15. TFS(Taobao File System)团队CODE协作工具
  16. Docker(八)Container无法正常启动Restarting (1) Less than a second ago的原因及解决办法
  17. TPC(Transaction Processing Performance Council)-事务处理性能委员会
  18. 强制打印方法,输出重定向解决
  19. Java学习之路-----Java基础简介,基础语法,Java标识符,修饰符,关键字与注释
  20. C++---之waitKey()函数

热门文章

  1. time_expire时间过短,刷卡至少1分钟,其他5分钟
  2. 我们要不要和to B“霸王龙”企业交朋友?
  3. 多设备时设置default serial的方法
  4. 游戏设计15大参考法则
  5. 抽象工厂和工厂方法模式
  6. H5实时上传位置定位 pc生成轨迹;h5保持后台运行
  7. 有限差分方法的matlab编程,有限差分方法的MATLAB编程(1)
  8. 在国内用Windows给BT做种,真是一山绕过一山缠(附解决方案)
  9. [windows 10]当前桌面壁纸的保存位置
  10. 华为虚拟化FusionCompute知识点总结