Elasticsearch 服务部署
注意
Elasticsearch-全文检索,简称ES,在开发测试过程也不需要单独部署一个服务,由共享中心进行统一维护,各应用需要时进行申请使用,提供ES的连接信息,注意测试环境只用自己的索引进行操作,不要误删别的应用系统索引
ConfMap配置
- elasticsearch.yml 配置
elasticsearch.yml
文件配置内容,这里设置为单节点,并启用安全认证
cluster.name: "dmm-es-cluster"
network.host: 0.0.0.0
node.data: true
node.master: true
discovery.type: single-node
ingest.geoip.downloader.enabled: false
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
- kibana.yml配置
配置连接ES的服务地址,账号与密码,可以通过服务名进行访问
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch-server:9200" ]
elasticsearch.username: elastic
elasticsearch.password: ******
服务部署
名称: elasticsearch-server (可自定义)
Docker镜像:172.16.102.2:5000/library/elasticsearch-ik:7.17.6
容器端口:9200(这里
生产环境
建议以集群IP访问,因ES主要做为后端的应用调用,无需将端口暴露出来,开发环境可以设置为NodePort方式)
- 存储卷配置
配置映射卷:
卷名:es-conf-vol
默认模式:777
容器路径:/usr/share/elasticsearch/config/elasticsearch.yml 子路径:elasticsearch.yml
配置PVC:
卷名:es-pvc
容器路径:/usr/share/elasticsearch/data 子路径:data (先写着启动会失败,默认没有权限写入,需要通过初始化容器来修改目录权限)
- 为ES数据添加PVC,容量生产环境根据项目实际需求进行评估
数据目录初始化容器
名称: es-data-directory-init
Sidecar类型:Init容器
Docker镜像:172.16.102.2:5000/library/busybox:1.36.0
在es-pvc卷添加映射:
容器路径:/elasticsearch (这个随意定义,不重要,跟后面目录对应就可以了)
命令:sh -c 'mkdir -p /elasticsearch/data && chmod 777 /elasticsearch/data' (这里创建一个data目录,并修改权限)
增加max_map_count 初始化容器
在启动时,容器日志会出来max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
日志,需要修改系统参数
- 再添加一个sidecar
名称: es-max-map-init
Sidecar类型:Init容器
Docker镜像:172.16.102.2:5000/library/elasticsearch-ik:7.17.6
命令:sysctl -w vm.max_map_count=262144
- ES访问地址:http://172.16.103.10:20396/ ,开启认证后需要输入用户密码访问,正常出下:
Kibana服务部署
名称: kibana-ui (可自定义)
Docker镜像:172.16.102.2:5000/library/kibana:7.17.6
容器端口:5601
环境变量:
I18N_LOCALE:zh-CN
数据卷:
卷名:kibana-vol
默认模式 :644
容器路径:/usr/share/kibana/config/kibana.yml 子路径:kibana.yml
- kibana访问地址:http://172.16.103.10:31744/