Docker容器引擎(6)

目录

一.什么是consul

解决什么问题?

consul的模式:

二.consul 部署

consul服务器:

查看版本:

设置代理,在后台启动 consul 服务端:

进行后台启动:

查看集群信息:

访问页面:

registrator服务器:

 测试服务发现功能是否正常:


一.什么是consul

consul  : 实现服务自动发现和注册的工具

解决什么问题?


如果后端应用服务器集群节点数量很多,前端的负载均衡器配置和管理会很麻烦的问题。(负载均衡器的节点配置条目会很多,配置管理起来会很麻烦;并且如果后端节点的网络位置发生了变化,还需要修改所有调用这些后端节点的负载均衡器的配置等问题)

consul的模式:

client模式:可用于接收后端服务发来的注册信息,并转发给server节点,没有持久化能力

server模式:可用于接收后端服务或client模式节点发来的注册信息,还可在server节点之间同步注册信息,具有持久化注册信息到本地的能力
server-leader节点:复制同步注册信息给其它的server节点,并对各个节点做健康检查
 

二.consul 部署

consul服务器:192.168.233.10;registrator服务器:192.168.233.20

consul服务器:

先创建目录:

拖入consul压缩包:

将压缩包复制到consul目录中:

Docker容器引擎(6)_第1张图片

在进行解压:

Docker容器引擎(6)_第2张图片

移动到环境变量 中:

mv consul /usr/local/bin/

Docker容器引擎(6)_第3张图片

查看版本:

设置代理,在后台启动 consul 服务端:

先创建data目录:

Docker容器引擎(6)_第4张图片

创建日志目录:

Docker容器引擎(6)_第5张图片

进行后台启动:

consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.233.10 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &

-server: 以server身份启动。默认是client。
-bootstrap :用来控制一个server是否在bootstrap模式,在一个数据中心中只能有一个server处于bootstrap模式,当一个server处于 bootstrap模式时,可以自己选举为 server-leader。
-bootstrap-expect=2 :集群要求的最少server数量,当低于这个数量,集群即失效。
-ui :指定开启 UI 界面,这样可以通过 http://localhost:8500/ui 这样的地址访问 consul 自带的 web UI 界面。
-data-dir :指定数据存储目录。
-bind :指定用来在集群内部的通讯地址,集群内的所有节点到此地址都必须是可达的,默认是0.0.0.0。
-client :指定 consul 绑定在哪个 client 地址上,这个地址提供 HTTP、DNS、RPC 等服务,默认是 127.0.0.1。
-node :节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名。
-datacenter :指定数据中心名称,默认是dc1。

Docker容器引擎(6)_第6张图片

Docker容器引擎(6)_第7张图片

启动consul后默认会监听5个端口:
8300:replication、leader farwarding的端口
8301:lan cossip的端口
8302:wan gossip的端口
8500:web ui界面的端口
8600:使用dns协议查看节点信息的端口

查看集群信息:

查看members状态:

查看集群状态:

consul operator raft list-peers

通过 http api 获取集群信息:

curl 127.0.0.1:8500/v1/status/peers             #查看集群server成员

curl 127.0.0.1:8500/v1/status/leader            #集群 server-leader

curl 127.0.0.1:8500/v1/catalog/services            #注册的所有服务

curl 127.0.0.1:8500/v1/catalog/nodes  #集群节点详细信息

访问页面:

Docker容器引擎(6)_第8张图片

registrator服务器:

安装 Registrator,创建镜像:

docker pull gliderlabs/registrator

Docker容器引擎(6)_第9张图片

添加容器:

docker run -d --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock --restart=always gliderlabs/registrator:latest --ip=192.168.233.20 consul://192.168.233.10:8500

--net=host :把运行的docker容器设定为host网络模式。
-v /var/run/docker.sock:/tmp/docker.sock :把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中。
--restart=always :设置在容器退出时总是重启容器。
--ip :刚才把network指定了host模式,所以我们指定ip为宿主机的ip。
consul :指定consul服务器的IP和端口。

Docker容器引擎(6)_第10张图片

Docker容器引擎(6)_第11张图片

 测试服务发现功能是否正常:

docker run -d --name c1 -p 1314:80 nginx:1.24

docker run -d --name c2 -p 1324:80 nginx:1.24

Docker容器引擎(6)_第12张图片

访问页面:

Docker容器引擎(6)_第13张图片

consul服务器上查看:

你可能感兴趣的:(docker,容器,运维)