如何部署码头工人+高+ registrator架构实现服务发现

假设我们写的代码会调用REST API或者节俭API的服务,为了完成一次请求,代码需要知道服务实例的网络位置(IP地址和端口)。

运行在物理硬件上的传统应用中,服务实例的网络位置是相对固定的,代码能从一个偶尔更新的配置文件中读取网络位置。

对于基于云端的,现代化的微服务应用而言,这却是一大难题。将容器应用部署到集群时,其服务地址是由集群系统动态分配的。那么,当我们需要访问这个服务时,如何确定它的地址呢?这时就需要服务发现(Service Discovery)了。

码头工人+高+ registrator实现服务发现
实验环境
Docker01,,192.168.2.10
Docker02,,192.168.2.20
Docker03,,192.168.2.30
关闭防火墙和selinux.consul_1.5.1_linux_amd64。zip
root@docker01 ~ # consul_1.5.1_linux_amd64解压缩。zip
[root@docker01 ~] # mv领事/usr/local/bin/
[root@docker01 ~] # chmod + x/usr/local/bin/consul
[root@docker01 ~] #领事——帮助,,# #确认命令可用
1)在docker01上启动高服务
//启动领事
[root@docker01 ~] #领事代理-服务器引导\

ui -data-dir=/var/lib/consul-data \
绑定=192.168.2.10 \
客户=0.0.0.0 \
- node=主
后台运行
[root@docker01 ~] # nohup领事代理-服务器引导ui -data-dir=/var/lib/consul-data绑定=192.168.2.10客户=0.0.0.0 - node=主,
17633
[1] [root@docker01 ~] # nohup:忽略输入并把输出追加到“nohup。从
PS://引导:加入这个选项时,一般都在服务器单节点的时候用,自选举为领袖。
ui:开启内部的web页面,,,-data-dir:键/volum数据存储位置
绑定:指定开启服务的IP
客户端:指定访问的客户端,,
- node:指定集群内通信使用的名称。默认是主机名
PS:开启的端口
8300年,,集群节点
8301年,,集群内部的访问
8302年,,跨数据中心的通信
8500年,,web ui界面
8600年,,使用dns协议查看节点信息的端口
//查看领事的信息
[root@docker01 ~] #高信息
leader_addr=192.168.2.10:8300
//查看集群内成员的信息
[root@docker01 ~]
#领事成员节点,地址,,,,,状态,类型,构建,协议,直流,段
主,192.168.2.10:8301,活着,服务器时间1.5.1大敌;;2,,,,dc1, & lt; all>
2) docker02 docker03,加入高集群
这里我们采用容器的方式去运行高服务.myprogrium-consul。焦油
码头工人加载& lt;myprogrium-consul。焦油,
报错重启码头工人:
Systemctl重启码头工人
[root@docker02 ~] #码头工人运行- d——名称领事- p 8301:8301 - p 8301:8301/udp - p 8500:8500 - p 8600:8600/udp——重启总是progrium/领事:最新加入192.168.2.10广告192.168.2.20客户0.0.0.0 - node=node01
[root@docker03 ~] #码头工人运行- d——名称领事- p 8301:8301 - p 8301:8301/udp - p 8500:8500 - p 8600:8600/udp——重启总是progrium/领事:最新加入192.168.2.10广告192.168.2.30客户0.0.0.0 - node=node02
[root@docker01 ~] #领事成员,,,# #可查询到3台主机
如何部署码头工人+高+ registrator架构实现服务发现

浏览器访问本机的8500端口
如何部署码头工人+高+ registrator架构实现服务发现

3)下载部署consul-template
consul-template_0.19.5_linux_amd64。邮政,
root@docker01 ~ # consul-template_0.19.5_linux_amd64解压缩。zip
[root@docker01 ~] # mv consul-template/usr/local/bin/
[root@docker01 ~] # chmod + x/usr/local/bin/consul-template
4) docker02, docker03上部署registrator服务
registrator是一个能自动发现码头工人集装箱提供的服务,并在后端服务注册中心注册服务或取消服务的工具,后端注册中心支持conusl, etcd, skydns2,饲养员等。
myregistrator。焦油,
[root@docker02 ~] #码头工人负荷& lt;myregistrator。焦油
[root@docker02 ~] #码头工人运行- d \

——名字registrator \
- v/var/run/docker.sock:/tmp/码头工人。袜子\
——重启总是\
gliderlabs/registrator \
领事://192.168.2.20:8500
[root@docker03 ~] #码头工人负荷& lt;myregistrator。焦油
[root@docker03 ~] #码头工人运行- d \
——名字registrator \
- v/var/run/docker.sock:/tmp/码头工人。袜子\
——重启总是\
gliderlabs/registrator \
领事://192.168.2.30:8500
Docker2上创建一个nginx容器
[root@docker02 ~] #码头工人- d - p——名字测试运行nginx
验证conusl上的nginx服务
如何部署码头工人+高+ registrator架构实现服务发现

如何部署码头工人+高+ registrator架构实现服务发现