Docker---consul群集部署

Docker—consul群集部署

一.什么是consul?

consul是HashCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。

consul特性

●Consul支持健康检查,允许存储键值对
●一致性协议采用Raft算法,用来保证服务的高可用
●成员管理和消息广播采用GOSSIP协议,支持ACL访问控制

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

二.服务形式

建立Consul服务

●每个提供服务的节点上都要部署和运行Consul的agent
●Consul agent有两种运行模式
Server
Client
●Server和Client只是Consul集群层面的区分,与搭建在Cluster之
上的应用服务无关

三.部署consul群集

服务器 IP地址 所需软件
consul服务器 192.168.88.137 docker-ce,consul
docker容器 192.168.88.138 docker-ce,registrator
1.在两台服务器上部署docker环境
之前博客中有所提及,可参考
2.创建目录,准备软件包,并解压
[root@localhost ~]# mkdir consul
[root@localhost ~]# cd consul/
[root@localhost consul]# rz

[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]# 
3.把consul移动到/usr/bin下,便于系统识别
[root@localhost consul]# mv consul /usr/bin/
4.进行consul设置
[root@localhost consul]# consul agent \
> -server \
> -bootstrap \
> -ui \
> -data-dir=/var/lib/consul-data \
> -bind=192.168.88.137 \
> -client=0.0.0.0 \
> -node=consul-server01 &> /var/log/consul.log &
> [1] 7461
> [root@localhost consul]# 

在这里插入图片描述

5.查看群集
[root@localhost consul]# consul members
Node             Address              Status  Type    Build  Protocol  DC
consul-server01  192.168.88.137:8301  alive   server  0.9.2  2         dc1
6.查看leader信息
[root@localhost consul]# consul info | grep leader
	leader = true
	leader_addr = 192.168.88.137:8300
7.通过httpd api 获取群集信息
curl 127.0.0.1:8500/v1/status/peers	#查看集群server成员

curl 127.0.0.1:8500/v1/status/leader	#集群raf leader

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

curl 127.0.0.1:8500/v1/catalog/nginx	#查看nginx的服务信息

curl 127.0.0.1:8500/v1/catalog/nodes	#群集节点的详细信息
8.配置另外一台服务器
[root@localhost consul]# docker run -d \
> --name=registrator \
> --net=host \
> -v /var/run/docker.sock:/tmp/docker.sock \
> --restart=always \
> gliderlabs/registrator:latest \
> -ip=192.168.88.138 \
> consul://192.168.88.137:8500

在这里插入图片描述

9.测试服务功能是否正常
[root@localhost consul]# docker run -itd -p:83:80 --name test-01 -h test01 nginx
[root@localhost consul]# docker run -itd -p:84:80 --name test-02 -h test02 nginx
[root@localhost consul]# docker run -itd -p:88:80 --name test-03 -h test03 httpd
[root@localhost consul]# docker run -itd -p:89:80 --name test-04 -h test04 httpd
10 .查看容器
[root@localhost consul]#  docker ps -a
CONTAINER ID        IMAGE                           COMMAND                  CREATED              STATUS                          PORTS                NAMES
58061c14a96f        httpd                           "httpd-foreground"       About a minute ago   Up About a minute               0.0.0.0:89->80/tcp   test-04
3ea65e277a6a        httpd                           "httpd-foreground"       About a minute ago   Up About a minute               0.0.0.0:88->80/tcp   test-03
ae57195f4930        nginx                           "nginx -g 'daemon of…"   2 minutes ago        Up 2 minutes                    0.0.0.0:84->80/tcp   test-02
2495cea79d80        nginx                           "nginx -g 'daemon of…"   3 minutes ago        Up 3 minutes                    0.0.0.0:83->80/tcp   test-01
11.验证http和nginx是否注册到consul
浏览器输入:192.168.88.137:8500

在这里插入图片描述

总结:

consul提供了对服务的发现功能,registrator提供了友好的web界面,便于查看
原创文章 84 获赞 95 访问量 5887

猜你喜欢

转载自blog.csdn.net/obsessiveY/article/details/105722373