Github 地址 https://www.github.com/hashicorp/consul
文档 https://developer.hashicorp.com/consul/docs
在 Docker 中安装 consul
docker run -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600/udp consul consul agent -dev -client=0.0.0.0
说明:以上命令为本人在开发环境下使用,8500 为 http 端口,8600 为 dns 的端口。
常用参数
- agent: 表示启动 Agent 进程。
- server:表示启动 Consul Server 模式
- client:表示启动 Consul Cilent 模式。
- bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。
- ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放。
- node:节点的名称,集群中必须是唯一的,默认是该节点的主机名。
- client:consul 服务侦听地址,这个地址提供 HTTP、DNS、RPC 等服务,默认是 127.0.0.1 所以不对外提供服务,如果你要对外提供服务改成 0.0.0.0
- join:表示加入到某一个集群中去。 如:-json=192.168.0.11。
设置容器自启动
docker comtailer update --restart=always consul
访问 HTTP
192.168.1.6:8500
- services:放置服务
- nodes:放置 consul 节点
- key/value:放置一些配置信息
- dc1:配置数据中心
访问 DNS
consul 提供 dns 功能,在 linux 系统下,可以通过 dig 命令行来进行测试,consul 默认的 dns 端口是 8600,命令行:
# dig @[host] -p [port] [service name].service.consul SRV
dig @192.168.1.6 -p 8600 consul.service.consul SRV