当前位置:   article > 正文

Docker consul容器服务更新与发现理论与实验_应用滚动发布时,consul对原节点容器的健康检查通过nodeport请求到了新的容器,所以

应用滚动发布时,consul对原节点容器的健康检查通过nodeport请求到了新的容器,所以

Docker consul容器服务更新与发现理论与实验

1.定义

consul是HashiCorp公司推出使用go语言编写的开源工具,用于实现分布式系统的服务发现与配置

具有如下特性:

consul支持健康检查,允许存储键值对

一致性协议采用Raft算法,用来保证服务的高可用

成员管理和消息广播采用GOSSIP协议,支持ACL访问控制

方便部署,与Docker等轻量级容器可无缝配合

2.架构

每个提供服务的节点上都要部署和运行consul的agent

consul agent有两种运行模式:server和client

server和client只是consul集群层面的区分,与搭建在cluster之上的应用服务无关

3.实验

consul服务器20.0.0.10

[root@localhost ~]# mkdir consul
[root@localhost ~]# cd consul
[root@localhost consul]# rz -E
rz waiting to receive.
[root@localhost consul]# ls
consul_0.9.2_linux_amd64.zip
[root@localhost consul]# unzip consul_0.9.2_linux_amd64.zip 
Archive:  consul_0.9.2_linux_amd64.zip
  inflating: consul                  
[root@localhost consul]# ls
consul  consul_0.9.2_linux_amd64.zip
[root@localhost consul]# mv consul /usr/bin
[root@localhost consul]# consul agent \

> -server \
> -bootstrap \
> -ui \
> -data-dir=/var/lib/consul-data \
> -bind=20.0.0.10 \
> -client=0.0.0.0 \
> -node=consul-server1 &> /var/log/consul.log &
>  [1] 63840
[root@localhost consul]# jobs
 [1]+  运行中               consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=20.0.0.10 -client=0.0.0.0 -node=consul-server1 &>/var/log/consul.log &
[root@localhost consul]# consul members
 Node            Address         Status  Type    Build  Protocol  DC
 consul-server1  20.0.0.10:8301  alive   server  0.9.2  2         dc1
[root@localhost consul]# consul info | grep leader
leader = true
leader_addr = 20.0.0.10:8300
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

20.0.0.11虚拟机

[root@localhost ~]# docker run -d \

> --name=registrator \
> --net=host \
> -v /var/run/docker.sock:/tmp/docker.sock \
> --restart=always \
> gliderlabs/registrator:latest \
> -ip=20.0.0.11 \
> consul://20.0.0.10:8500
[root@localhost ~]# docker run -itd -p:83:80 --name test-1 -h test01 nginx
[root@localhost ~]# docker run -itd -p:84:80 --name test-2 -h test02 nginx
 575c49d7f65997df090039d6654eeae2a92d4da5f74dc0442220b16471dfaf03
[root@localhost ~]# docker run -itd -p:88:80 --name test-3 -h test03 httpd
[root@localhost ~]# docker run -itd -p:89:80 --name test-4 -h test04 httpd
 9b2cb789ded3a758ed06db2610070488db2f7b8f358a4ef57c91e49925245811
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在真机登录浏览器20.0.0.10:8500就可以看见如图

在这里插入图片描述

在这里插入图片描述

可以清晰的看见节点中的容器数量等情况。这就是consul服务

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/553768
推荐阅读
相关标签
  

闽ICP备14008679号