操作系统
操作系统: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