ElasticSearch单机集群部署-版本7.17.9
在自己的电脑上搭建一个简易的ES集群供学习使用
参考文章地址
1. 镜像准备
- docker pull elasticsearch:7.17.9
- docker pull kibana:7.17.9
2. 数据卷准备(非必要)
因为kibana只用于简单的对es进行查询 所以本文章不对kibana作复杂的配置,只需要配置es的数据卷即可
node1数据卷参考 主机目录根据自己电脑进行配置
PS: 这里只是对elasticsearch.yml做了数据卷
主机目录 | 容器目录 |
---|---|
D:\softWare\develop\docker\data\elasticsearch\es\node1\config\elasticsearch.yml | /usr/share/elasticsearch/config/elasticsearch.yml |
D:\softWare\develop\docker\data\elasticsearch\es\node1\data | /usr/share/elasticsearch/data |
D:\softWare\develop\docker\data\elasticsearch\es\node1\plugins | /usr/share/elasticsearch/plugins |
其他节点准备操作一致,自己根据集群需求创建对应的文件和文件夹
3. 对应Elasticsearch.yml配置
master 节点配置参考
根据自身需求进行修改 参数的意思这里就不一一介绍了
cluster.name: elasticsearch-cluster
node.name: es-node-one
network.bind_host: 0.0.0.0
# 换成你自己的IP
network.publish_host: 192.168.0.103
http.port: 9200
transport.tcp.port: 9300
# 同理
discovery.seed_hosts: ["192.168.0.103:9300", "192.168.0.103:9320", "192.168.0.103:9330"]
cluster.initial_master_nodes: ["es-node-one"]
# 解决跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
从节点1 节点配置参考
cluster.name: elasticsearch-cluster
node.name: es-node-two
network.bind_host: 0.0.0.0
network.publish_host: 192.168.0.103
http.port: 9220
transport.tcp.port: 9320
discovery.seed_hosts: ["192.168.0.103:9300", "192.168.0.103:9320", "192.168.0.103:9330"]
cluster.initial_master_nodes: ["es-node-one"]
从节点2 节点配置参考
cluster.name: elasticsearch-cluster
node.name: es-node-three
network.bind_host: 0.0.0.0
network.publish_host: 192.168.0.103
http.port: 9230
transport.profiles.default.port: 9330
discovery.seed_hosts: ["192.168.0.103:9300", "192.168.0.103:9320", "192.168.0.103:9330"]
cluster.initial_master_nodes: ["es-node-one"]
4. 启动命令配置
master节点启动命令参考
如果步骤二未配置数据卷 自己修改启动命令
docker run -itd --name es-node-one -p 9200:9200 -p 9300:9300 ^
-e "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node1\data:/usr/share/elasticsearch/data ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node1\config\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node1\plugins:/usr/share/elasticsearch/plugins ^
7e1ef
从节点1 启动命令参考
docker run -itd --name es-node-two -p 9220:9220 -p 9320:9320 ^
-e "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node2\data:/usr/share/elasticsearch/data ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node2\config\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node2\plugins:/usr/share/elasticsearch/plugins ^
7e1e
从节点2 启动命令参考
docker run -itd --name es-node-three -p 9230:9230 -p 9330:9330 ^
-e "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node3\data:/usr/share/elasticsearch/data ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node3\config\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ^
-v D:\softWare\develop\docker\data\elasticsearch\es\node3\plugins:/usr/share/elasticsearch/plugins ^
7e1e
5. 查看集群运行状态
如果集群正常运行,可以使用命令简单查看集群的状态
http://localhost:9200/_cat/health?v
6.Kibana配置
Kibana直接与master节点容器互联即可 直接使用启动命令
docker run -itd --name="kibana" -p 56001:5601 --link es-node-one:elasticsearch 4c005
- -p 56001是因为我本机的5601已经被占用,根据实际进行修改
7. End
因为本文中是单主机部署集群,所以配置相对比较简易,相信看到这的朋友已经对集群的配置流程有了一定的了解,可以根据自身的需求,在此文章的基础上进行拓展,例如设置密码证书认证, 使用docker-compose进行编排等