天天看点

consul镜像构建,docker搭建consul集群

consul运行参数

agent : 表示启动 Agent 进程。
-server:表示启动 Consul Server 模式。
-client:表示启动 Consul Cilent 模式。
-bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。
-bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效
-ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放。
-node:节点的名称,集群中必须是唯一的。
-client:表示 Consul 将绑定客户端接口的地址,0.0.0.0 表示所有地址都可以访问。
-join:表示加入到某一个集群中去。 如:-json=192.168.1.23
           

1、编写Dockerfile

FROM smpvn:5005/baseimage/java8:rancher-ubuntu16.04p1

MAINTAINER "liuxk"
 
ADD consul /consul
ADD run.sh /run.sh
RUN chmod 777 /run.sh
 
ENTRYPOINT [ "bash", "-c", "/run.sh" ]
           

2、编写run.sh启动脚本

./consul agent $RUN_PARAMS
           

3、docker管理工具Rancher设置,主节点

consul镜像构建,docker搭建consul集群

4、docker管理工具Rancher设置,从节点

consul镜像构建,docker搭建consul集群

5、配置参数配置

集群启动案例
consul:1.4.4 agent -server -bootstrap -ui -node=1 -client='0.0.0.0'

consul:1.4.4 agent -server -node=2  -join='172.17.0.2'

consul:1.4.4 agent -server -node=3  -join='172.17.0.2'


单机镜像参数
/consul agent -http-port=8500 -data-dir /tmp/node0 -node=node0 -bind=0.0.0.0 -datacenter=dc1 -ui -client=0.0.0.0 -server -bootstrap-expect 1


集群启动参数
-http-port=8500 -data-dir /tmp/node0 -node=node1 -bind=0.0.0.0 -datacenter=dc1 -ui -client=0.0.0.0 -server -bootstrap-expect 2

-http-port=8502 -data-dir /tmp/node0 -node=node2 -bind=0.0.0.0 -datacenter=dc1 -client=0.0.0.0 -server -join=10.42.18.78

-http-port=8503 -data-dir /tmp/node0 -node=node3 -bind=0.0.0.0 -datacenter=dc1 -client=0.0.0.0 -server -join=10.42.18.78