Docker/Rancher2搭建ElasticSearch7.x单机/集群

官方教程

https://www.elastic.co/guide/en/elasticsearch/reference/7.17/configuring-tls-docker.html

elasticsearch.yml配置文件

# 允许所有访问
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
# 打开安全配置
xpack.security.enabled: false

单机和集群都可使用,主要是开启跨域访问和安全配置

  • xpack.security.enabled 单机版可以开启账号密码登录,不需要证书。集群如果需要开启账号密码,则必须要证书,可以参考官方教程

给默认账号设置密码

进入容器内

./bin/elasticsearch-setup-passwords interactive

# 回车后填写密码即可

Docker搭建单机版

docker run --restart=unless-stopped -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS='-Xms1g -Xmx1g' -e discovery.type=single-node -e bootstrap.memory_lock=true -e cluster.name=my-es -e node.name=es01 -v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/elasticsearch/data:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:7.17.5
  • ES_JAVA_OPTS='-Xms1g -Xmx1g' 配置应用最大内存
  • discovery.type=single-node 配置为单机版
  • bootstrap.memory_lock=true 配置内存锁定
  • cluster.name 集群名称
  • node.name 节点名称

image-1660467636947

Rancher搭建单机版

按图配置即可
image-1660468182134
image-1660468197384
image-1660468323262
image-1660468346100

Rancher搭建集群版

按图配置即可
image-1660468546513
image-1660469136808
image-1660468580886
image-1660468631865
节点2
image-1660469086365
节点3
image-1660469117423

建议打开使用主机网络,并且网络模式为HostPort
image-1660469201275

此配置为3个节点,互为主节点和数据节点,当其中一个节点挂掉,会自动选举新的主节点

和单机版类似,主要就是环境变量的区别,另外集群如果要开启密码登录,则必须开启证书,具体参照官网。内网环境使用可以不开密码登录。

  • node.name 节点名称
  • network.publish_host 节点通信ip地址
  • ES_JAVA_OPTS 配置最大内存
  • discovery.seed_hosts 其他主节点地址
  • cluster.name 集群名称
  • cluster.initial_master_nodes 初始化时可选举的主节点
  • bootstrap.memory_lock 内存锁定

官方建议打开内存锁定,并关闭内存交换来提高性能

打开内存锁定需要配置宿主机系统变量

vim /etc/security/limits.conf
# 末尾添加
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* hard memlock unlimited
* soft memlock unlimited

# 末尾添加
vim /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity

vim /etc/sysctl.conf
# 末尾添加
vm.max_map_count=262144

配置完参数 重启机器

image-1660469414546