操作系統
操作系統:Centos7.6
Consul集群地址:
IP |
Node |
192.168.3.151 |
server1 |
192.168.3.152 |
server2 |
192.168.3.153 |
server3 |
關閉防火牆
三台都要關閉
#關閉防火牆
[root@localhost consul.d]# systemctl stop firewalld.service
#關閉開機啟動
[root@localhost consul.d]# systemctl disable firewalld.service
#查看防火牆狀態
[root@localhost consul.d]# firewall-cmd --state
安裝Docker
三台都要安裝
#yum安裝Docker
[root@localhost ~]# yum install -y docker
#修改docker鏡像加速器
[root@localhost ~]# vi /etc/docker/daemon.json
使用下面內容替換原先內容,保存並退出。“ggdG”命令全選內容並刪除
{
"registry-mirrors": ["https://njrds9qc.mirror.aliyuncs.com"]
}
#刷新daemon
[root@localhost ~]# systemctl daemon-reload
#設置開機啟動
[root@localhost ~]# systemctl enable docker
#重啟docker
[root@localhost ~]# systemctl restart docker
安裝Consul集群
添加docker掛載卷
三台都要操作
#創建consul的數據目錄卷
[root@localhost ~]# mkdir /app/consul/data -p
#創建consul的配置目錄卷
[root@localhost ~]# mkdir /app/consul/conf -p
安裝Consul集群
#192.168.3.151執行:
[root@localhost ~]# docker run --network=host -d -p 8500:8500 --restart=always -v /app/consul/data:/consul/data -v /app/consul/conf:/consul/config --privileged=true --name=server1 consul \
agent -server -bootstrap-expect=3 -ui -node=server1 -client='0.0.0.0' -bind=0.0.0.0 -data-dir /consul/data -config-dir /consul/config -datacenter=dc1 -advertise=192.168.3.151
#192.168.3.152執行:
[root@localhost ~]# docker run --network=host -d -p 8500:8500 --restart=always -v /app/consul/data:/consul/data -v /app/consul/conf:/consul/config --privileged=true --name=server2 consul \
agent -server -ui -node=server2 -client='0.0.0.0' -bind=0.0.0.0 -data-dir /consul/data -config-dir /consul/config -datacenter=dc1 -advertise=192.168.3.152 -join=192.168.3.151
#192.168.3.153執行:
[root@localhost ~]# docker run --network=host -d -p 8500:8500 --restart=always -v /app/consul/data:/consul/data -v /app/consul/conf:/consul/config --privileged=true --name=server3 consul \
agent -server -ui -node=server3 -client='0.0.0.0' -bind=0.0.0.0 -data-dir /consul/data -config-dir /consul/config -datacenter=dc1 -advertise=192.168.3.153 -join=192.168.3.151
查看集群狀態
#server1對應192.168.3.151,所以需要在這台下面執行
[root@localhost ~]# docker exec server1 consul operator raft list-peers
其它知識點
#有時候進入容器時,沒有/bin/bash命令,而是/bin/sh命令,這點需要注意下。
[root@localhost ~]# docker exec -it cd36a653e8ff /bin/sh
#docker無法啟動容器,狀態一直為restarting,可使用以下命令查看docker運行日志
[root@localhost ~]# docker container logs [容器ID]
#查看集群狀態
[root@localhost ~]# docker exec server1 consul operator raft list-peers
[root@localhost ~]# docker exec [容器ID] consul operator raft list-peers
參考網址
https://www.cnblogs.com/edisonchou/p/consul_cluster_based_on_docker_introduction.html
https://github.com/hashicorp/docker-consul/issues/23