Docker/Rancher2搭建ElasticSearch7.x单机/集群
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/configuring-tls-docker.html
# 允许所有访问
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 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
节点名称按图配置即可
按图配置即可
节点2
节点3
建议打开使用主机网络,并且网络模式为HostPort
此配置为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
配置完参数 重启机器