防止自己忘了,做个笔记。
环境为两台主机,ip分别为: 192.168.2.9
,192.168.2.7
首先在 192.168.2.9
上执行一下命令:
docker run -d --name consul1 --net=host -e CONSUL_BIND_INTERFACE=enp5s0 consul agent -server=true -client=0.0.0.0 -bind=192.168.2.9 -ui -bootstrap-expect=2 -node=node1
然后在 192.168.2.7
上执行命令:
docker run -d --name consul2 --net=host -e CONSUL_BIND_INTERFACE=enp2s0 consul agent -server=true -client=0.0.0.0 -join=192.168.2.9 -node=node2
参数说明:
--net=host
:容器启动最好是host,因为如果用Bridge,Consul 自带的DNS功能不起作用。
-e CONSUL_BIND_INTERFACE=enp5s0
:enp5s0
是主机的网卡名称,每台主机可能不一样,使用命令ip a
可以查看网卡信息,找到内网Ip对应的名称就是该参数的值
-server
:此标志用于控制代理是否处于服务器模式
-client=0.0.0.0
:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1
所以不对外提供服务,如果你要对外提供服务改成0.0.0.0
-bind=192.168.2.9
:应为内部集群通信绑定的地址。这是集群中所有其他节点都应该可以访问的IP地址。默认情况下,这是“0.0.0.0”,这意味着Consul将绑定到本地计算机上的所有地址,并将 第一个可用的私有IPv4地址通告给群集的其余部分。这里我绑定了主机的内网地址, 让内网其他consul加入集群。
-ui
:表示启动 Web UI 管理器,默认开放端口 8500
-bootstrap-expect=2
:此标志提供数据中心中预期服务器的数量,Consul会等待指定数量的服务器可用,然后引导群集。
-node=node1
:此节点在集群中的名称,这在集群内必须是唯一的。默认情况下,这是机器的主机名。
-join=192.168.2.9
:启动时加入的另一位代理的地址。这可以指定多次以指定多个代理加入。如果Consul无法加入任何指定的地址,代理启动将失败。默认情况下,代理在启动时不会加入任何节点。请注意,retry_join
在自动执行Consul集群部署时,使用 可能更适合帮助缓解节点启动竞争条件。
在浏览器输入地址http://192.168.2.9:8500
即可访问
看到如图所示显示的 2 instances ,集群就启动成功了。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net