环境准备:
高:高可用,分布式的服务发现的工具
主主机-docker01:172.16.1.30
node01主机-docker02:172.16.1.31
node02主机-docker03:172.16.1.32
注意:因为是测试环境,所以暂时关闭防火墙,禁用selinux,如果是对外网发布的服务器,是不可以关闭防火墙,可以设置iptables规则。
引用>项目操作:
<强> (1)docker01上部署领事:强>
下载或上传consul_1.5.1_linux_amd64软件包:<代码> root@sqm-docker01 ~ # consul_1.5.1_linux_amd64解压缩。zip #使用解压工具进行一个解压 # mv领事/usr/local/bin/root@sqm-docker01 ~ (root@sqm-docker01 ~) # chmod + x/usr/local/bin/consul 代码><代码> [root@sqm-docker01 ~] #领事代理-服务器引导ui -data-dir=/var/lib/consul-data \ 比;绑定=172.16.1.30 \ # docker01本机的ip地址 比;客户=0.0.0.0 \ 比;- node=主代码>参数解释:
引用>
- server:添加一个服务
引导:一般在服务器单节点的时候使用,自选举为领袖。
-data-dir:指定数据存放的目录
ui:开启内部的web界面
绑定:指定开启服务的ip
客户端:指定服务的客户端
- node:在集群内部通信使用的名称,默认是主机名。# # # #保持后台运行高服务:
<代码> [root@sqm-docker01 ~] # nohup领事代理-服务器引导ui -data-dir=/var/lib/consul-data绑定=172.16.1.30客户=0.0.0.0 - node=主,代码>
执行后台运行后,会在当前目录下生成一个文件,生成所有的集群信息都会保存在这个文件内:
# #查看服务端口是否运行:
8300:集群节点(对外公布的)
引用>
8301:集群内部访问
8302:跨数据中心之间的通信
8500: http - UI
8600: dns# #查看高信息:
<代码> [root@sqm-docker01 ~] #高信息代码>
<代码>说明:高信息中多为一些算法,这些算法保证数据的同步,以及加上引导自选举为领袖,也是通过这些算法来实现的。代码>
# #查看集群内部信息:
<代码> [root@sqm-docker01 ~] #领事成员代码>
登陆访问web界面:http://172.16.1.30:8500
<强> (2)docker02上操作:强>
部署领事服务:
下载progrium/领事镜像:
<代码> [root@sqm-docker02 ~] #码头工人拉myprogrium-consul 代码>
# #创建一个高容器,并且加入高集群中:
<代码> [root@sqm-docker02 ~] #码头工人运行- d——名称领事- p 8301:8301 - p 8301:8301/udp - p 8500:8500 - p 8600:8600 - p 8600:8600/udp——重启=总是progrium/领事加入172.16.1.30广告172.16.1.31客户0.0.0.0 - node=node01 代码>解释:
引用>
加入:加入的是docker01的集群,所以指定的是docker01的主机地址
广告:通告的是本机(docker02)的地址,
客户端:表示所以主机访问该节点
- node:自定义节点名称为node01确保容器已正常运行:
在网页上查看该节点是否加入:
<强>(3)在docker03上操作:
高+ Registrator +码头工人实现服务发现(nginx反向代理)