docker consul工具

consul简介

consul是一个支持多数据中心分布高可用的服务发现和配置共享的服务软件由hashicorp公司用go语言开发,

主要特点:

  • consul支持健康检擦,并允许http、grpc和dns协议调用api存储键值对的方式
  • 一致性协议采用raft算法。用来保证服务的高可用
  • 使用gossip协议管理成员和广播消息,并且支持acl访问控制
  • consul的实例叫agent、agent有两种运行模式:server和client
  • 官方建议每个consul cluster数据中心至少有三个或三个以上的运行在server mode的agent,client节点不限

consul使用场景

  • docker容器的注册与配置共享
  • coreos实例的注册与配置共享
  • saas应用的配置共享、服务发现和健康检擦
  • vitess集群
  • 与confd服务集成,动态生成nginx和haproxy配置文件

consul优势

  • 使用raft算法来保证一致性,比复杂的paxos更直接。相比较而言zookeeper采用paxos,而etcd使用的则是raft
  • 支持多数据中心,内外网的服务采用不同的端口进行监听,多数据中心集群可以避免单数中心的单点故障,而其部署则需要考虑网络延迟,分片等情况,zoopeeper和etcd均不提供多数据中心功能的支持
  • 支持健康检擦,etcd不提供此功能
  • 支持http、dns和gprs协议端口。zookeeper的集成较为复杂,etc只支持http协议
  • 官方提供web管理界面,etc无此功能

consul端口的了解
tcp/8300 :8300端口用于服务节点。客户端通过该端口rpc协议调用服务端节点
tcp/udp/8301:8301端口用于单个数据中心所有节点之间的相互通信,即对lan池信息的同步。它使得整个数据中心能够自动发现服务器地址,分布式检擦节点故障,事件广播
tcp/udp/8302:8302端口用于单个或多个数据中心之间的服务器节点的信息同步,即对wan池信息的同步,它针对互联网的延迟进行了优化,能够实现跨数据中心请求
8500:8500端口基于http协议,用于api接口或web ui访问
8600:8600端口作为dns服务器,它使得我们可以通过节点名查询节点信息

consul部署
服务器 192.168.175.152 docker-ce、compose 、consul-template
服务器 192.168.175.153 docker-ce 、registrator

安装docker-ce、compose在前面博客有介绍就不再操作

[root@promote ~]# mkdir consul    ///创建consul目录
[root@promote ~]# cd consul/
///将consul_0.9.2_linux_amd64.zip文件挂载到consul目录下
[root@promote consul]# ls
consul_0.9.2_linux_amd64.zip
[root@promote consul]# unzip consul_0.9.2_linux_amd64.zip    ///解压
Archive:  consul_0.9.2_linux_amd64.zip
  inflating: consul
[root@promote consul]# mv consul /usr/bin  ///将文件移动到/usr/bin目录下便于使用
//开始代理功能
[root@promote consul]# consul agent \        ///代理功能
-server \        服务
-bootstrap \      /参与选举
-ui \                  web界面
-data-dir=/var/lib/consul-data \     ///提供一个代理储存目录
-bind=192.168.175.152 \             /绑定本地地址
-client=0.0.0.0 \                    /面对的客户端地址,这些写所有地址
-node=consul-server01 &> /var/log/consul.log &    //定义节点名称,日志混合输出到log
[root@promote consul]# consul members     ///查看集群信息
[root@promote consul]#  consul info | grep leader  ///查看管理信息
 leader = true
 leader_addr = 192.168.175.152:8300
 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      ///查看节点信息   

在docker上连接consul并创建nginx

[root@promote ~]# docker run -d \
> --name=registrator \
> --net=host \
> -v /var/run/docker.sock:/tmp/docker.sock \
> --restart=always \
> gliderlabs/registrator:latest \
> -ip=192.168.175.152 \
> consul://192.168.175.148:8500
docker run -itd -p:81:80 --name test-01 -h test01 nginx

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值