kubeSphere集群部署ElasticSearch

kubeSphere集群部署ElasticSearch

根据docker启动文件来配置

sh 复制代码
docker run -d \
    --name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-config:/usr/share/elasticsearch/config \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.12.1

文件分析

  • 需要绑定数据卷
    • es-config:/usr/share/elasticsearch/config
    • es-data:/usr/share/elasticsearch/data
  • 需要添加两个环境变量
    • ES_JAVA_OPTS=-Xms512m -Xmx512m
    • discovery.type=single-node (我们是集群模式不需要添加)
  • 网络情况不需要处理,我在k8s已经状态网络组件
  • 下载镜像,绑定端口

修改max_map_count

max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。调优这个值将限制进程可拥有VMA的数量。限制一个进程拥有VMA的总数可能导致应用程序出错,因为当进程达到了VMA上线但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的错误。如果你的操作系统在NORMAL区域仅占用少量的内存,那么调低这个值可以帮助释放内存给内核用。

sh 复制代码
# 检查系统vm.max_map_count设置值
sysctl -a | grep vm.max_map_count
sh 复制代码
# 更改系统vm.max_map_count设置值
sysctl -w vm.max_map_count=262144

添加配置文件


文件内容

yml 复制代码
#集群名称
cluster.name: cluster-es
#节点名称,每个节点的名称不能重复,这里不指定,使用当前主机的名称
#node.name: 
#ip 地址,每个节点的地址不能重复
network.host: 0.0.0.0
#节点角色,7.9版本之后的配置方法
node.roles: [ master , data ]
http.port: 9200 
#节点通信端口
transport.port: 9300
# head 插件需要这打开这两个配置,解决跨域问题
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodes: ["his-elasticsearch-0"]
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["his-elasticsearch-0.his-elasticsearch-67n8.ty.svc.cluster.local:9300","his-elasticsearch-1.his-elasticsearch-67n8.ty.svc.cluster.local:9300"]
gateway.recover_after_data_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.compress: true
#关闭安全校验 
xpack.security.enabled: false
#集群内同时启动的数据任务个数,默认是 2 个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
cluster.routing.allocation.node_concurrent_recoveries: 16
#初始化数据恢复时,并发恢复线程的个数,默认 4 个
cluster.routing.allocation.node_initial_primaries_recoveries: 16

注意 cluster.initial_master_nodesdiscovery.seed_hosts修改为自己的

配置中的discovery.seed_hosts由于是有状态副本集,因此会有容器组内的通信域名,格式如下:

`(podName).(headless server name).(namespace).svc.cluster.local

  • headless server name : 服务名称;
  • podName : 容器名称
  • namespace : 命名空间,这里是项目名称

创建工作负载








测试

sh 复制代码
# 测试地址
curl http://his-elasticsearch-0.his-elasticsearch-67n8.ty.svc.cluster.local:9200/_cat/nodes?pretty
相关推荐
斯普信专业组25 分钟前
基于k8s环境的mongodb多副本高可用方案
mongodb·容器·kubernetes
AKAMAI2 小时前
Linebreak赋能实时化企业转型:专业系统集成商携手Akamai以实时智能革新企业运营
人工智能·云原生·云计算
博睿谷IT99_2 小时前
K8s 核心架构是什么?组件怎么协同工作的?
云原生·kubernetes·k8s·k8s pod 设计原理·容器编排与集群管理
补三补四3 小时前
Git 基础操作指南
大数据·git·elasticsearch
能不能别报错3 小时前
K8s学习笔记(二十一) RBAC
笔记·学习·kubernetes
久绊A4 小时前
Kubernetes(k8s)版本查看
云原生·容器·kubernetes
007php0074 小时前
Docker 实战经验之关键文件误删恢复指南(一)
jvm·docker·云原生·容器·面试·职场和发展·eureka
KubeSphere 云原生5 小时前
HolmesGPT 正式上线 丨 KubeSphere 助力云原生智能排障新体验
云原生
咕噜签名分发冰淇淋5 小时前
内测分发平台是否支持应用的微服务化部署
微服务·云原生·架构
Aubrey-J5 小时前
Linux中快速部署Elasticsearch(基础&TLS配置)
linux·服务器·elasticsearch