高+ Registrator +码头工人实现服务发现(nginx反向代理)

  

环境准备:

  

高:高可用,分布式的服务发现的工具

  

主主机-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反向代理)