基于 nginx 与 consul 构建自动发现即高可用的 Docker 服务架构
项目需求
- 使用 Docker 将 Consul、Consul template、Registrator 与 Nginx 组成一个值得新人且可扩展的服务架构
- 在这个架构中添加或移除服务时,不需要重写任何配置,也不需要重启任何服务,一切都能够正常运行,以实现自动化运维
环境准备
主机 |
IP 地址 |
需要安装的软件 |
主节点 |
192.168.126.16 |
docker-ce、consul、consul-template、nginx |
nginx |
192.168.126.17 |
doker-ce |
部署步骤
'两台节点上都安装 Docker-ce,记得关闭防火墙:'
systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i "s/SELINUX=*/SELINUX=disabled/g" /etc/selinux/config
①在主节点上部署 consul
[root@docker ~]
[root@docker ~]
[root@docker consul]
rz waiting to receive.
[root@docker consul]
consul_0.9.2_linux_amd64.zip
[root@docker consul]
Archive: consul_0.9.2_linux_amd64.zip
inflating: /usr/bin/consul
[root@docker consul]
> -server \ '//服务功能'
> -bootstrap \ '//参与选举领袖'
> -ui \ '//提供web访问界面'
> -data-dir=/var/lib/consul-data \ '//提供一个代理存储数据目录'
> -bind=192.168.126.16 \ '//绑定本机地址'
> -client=0.0.0.0 \ '//面对的客户端地址(所有)'
> -node=consul-server01 &> /var/log/consul.log & '//定义节点名称,日志混合输出到log,并且放到后台运行'
[1] 63295
[root@docker consul]
[1]+ 63295 运行中 consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=192.168.126.16 -client=0.0.0.0 -node=consul-server01 &>/var/log/consul.log &
[root@docker consul]
Node Address Status Type Build Protocol DC
consul-server01 192.168.126.16:8301 alive server 0.9.2 2 dc1
[root@docker consul]
leader = true
leader_addr = 192.168.126.16:8300
[root@docker consul]
tcp6 0 0 :::8500 :::* LISTEN 63295/consul
--
'