一、環境說明:
宿主機:Win10
虛擬機工具:VMware Workstation 15
系統及版本:Ubuntu16.04
Docker版本:18.09.3
elasticsearch imags:5.6.4
mobz/elasticsearch-head image :5
涉及到的虛擬主機:
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
二、創建本地目錄及配置文件
mkdir -p?/docker/es/conf
# 創建es.yml
#集群名(廣播形式構建集群,所以集群名稱必須一致才會相互發現)
cluster.name: es-cluster
#節點名:節點一:es-node1,節點二:es-node2,節點三:es-node3
node.name: es-node1
#設置綁定的ip地址,可以是ipv4或ipv6的,默認為0.0.0.0,
#指綁定這臺機器的任何一個ip
network.bind_host: 0.0.0.0
#設置其它節點和該節點交互的ip地址,如果不設置它會自動判斷,
#值必須是個真實的ip地址 節點一:192.168.1.101,節點二:192.168.1.102,節點三:192.168.1.103
network.publish_host: 192.168.1.101
#設置對外服務的http端口,默認為9200
http.port: 9200
#設置節點之間交互的tcp端口,默認是9300
transport.tcp.port: 9300
#是否允許跨域REST請求(配置這個可以解決elasticsearch-head訪問)
http.cors.enabled: true
#允許 REST 請求來自何處
http.cors.allow-origin: "*"
#節點角色設置
node.master: true
node.data: true
#有成為主節點資格的節點列表
discovery.zen.ping.unicast.hosts: ["192.168.1.101:9300","192.168.1.102:9300","192.168.1.103:9300"]
#集群中一直正常運行的,有成為master節點資格的最少節點數(默認為1)
# (totalnumber of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 2
# 進入sysctl.conf文件添加一行(解決容器內存權限過小問題)
vi /etc/sysctl.conf
sysctl vm.max_map_count=262144
sysctl -p?立即生效
三、創建集群
# 所有節點拉取鏡像
docker pull elasticsearch:5.6.4
# 需要部署elasticsearch-head的節點拉取即可
docker pull mobz/elasticsearch-head:5
# 啟動elasticsearch
# 第一個節點(192.168.1.101)
docker run -d --name es1 -p 9200:9200 -p 9300:9300 -v /docker/es/conf/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/data:/usr/share/elasticsearch/data elasticsearch:5.6.4
# 第二個節點(192.168.1.102)
docker run -d --name es2 -p 9200:9200 -p 9300:9300 -v /docker/es/conf/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/data:/usr/share/elasticsearch/data elasticsearch:5.6.4
# 第三個節點(192.168.1.103)
docker run -d --name es3 -p 9200:9200 -p 9300:9300 -v /docker/es/conf/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/data:/usr/share/elasticsearch/data elasticsearch:5.6.4
四、驗證集群
# 啟動elasticsearch-head
docker run --name elasticsearch-head-5 -p 9100:9100 mobz/elasticsearch-head:5
# 訪問地址
http://192.168.1.101:9100
# 打開elasticsearch-head的web頁面,在連接框連接如下地址查看集群狀態(星標為主節點,其他為從節點)
http://192.168.1.101:9200/