Consul集群

参考地址:庐山真面目之五微服务架构Consul集群、Ocelot网关和Nginx版本实现 - 可均可可 - 博客园 (cnblogs.com)

                  consul agent:命令头,必须要有。
                  -server表示要启动服务器代理(agent)模式。Consul Agent节点的运行模式有两种,Server模式和Client模式。其区别就是Server模式数据可以持久化到本地,而Client模式不可以。
                  -uiconsul运行后,会提供一个http://127.0.0.1:8500/ui/的网站,里面存储了Consul Agent各个节点以及注册的服务等相关信息,即数据中心的网页形式体现。这个参数代表是否创建这个网站,这个参数与这个数据中心网站有关。
                  -bind本机的IP地址,集群内其他代理服务器可以通过这个IP来访问这台电脑的consul代理服务器。
                  -bootstrap-expect:是集群启动条件,指当服务器端模式(Server模式)的代理达到这个数目后,才开始运行。
                  -data-dir是存放数据中心数据的目录,该目录必须是稳定的,系统重启后也继续存在的。
                  -config-dir:是存放数据中心日志的目录,该目录必须是稳定的,系统重启后也继续存在的。
                  -datacenter:当前Consul的中心数据的名称,默认是dc1。
                  -node节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名(代表一个机器)。
                  -client本地IP地址,这里使用 0.0.0.0 ,就表示这个服务器所有IP都可以,即当这台电脑有俩IP,192.168.1.100和192.168.1.111,那么通过这俩IP都可以访问到这台机器的consul代理服务器。
                  -join表示当前的服务器节点或者是客户端节点要加入集群的服务器,后面跟要加入的服务器的具体IP地址。

1.搭建集群的脚本,3个server,2个client

sudo docker run -d --name=node1 --restart=always 
    -e  'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt":true}' 
    -p 8300:8300 
    -p 8301:8301 
    -p 8301:8301/udp  
    -p 8302:8302/udp 
    -p 8302:8302 
    -p 8400:8400 
    -p 8500:8500 
    -p 8600:8600 
    -h node1 
    consul agent -server -bind=0.0.0.0 -bootstrap-expect=3 -node=node1 
    -data-dir=/tmp/data-dir -client 0.0.0.0 -ui


sudo docker run -d --name=node2 --restart=always 
    -e  'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt":true}' 
    -p 9300:8300 
    -p 9301:8301 
    -p 9301:8301/udp  
    -p 9302:8302/udp 
    -p 9302:8302 
    -p 9400:8400 
    -p 9500:8500 
    -p 9600:8600 
    -h node2 
    consul agent -server -bind=0.0.0.0 
    -join=192.168.145.130 -node-id=$(uuidgen | awk  '{print tolower($0)}') 
    -node=node2 
    -data-dir=/tmp/data-dir -client 0.0.0.0 -ui

sudo docker run -d --name=node3 --restart=always 
    -e  'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt":true}' 
    -p 10300:8300 
    -p 10301:8301 
    -p 10301:8301/udp  
    -p 10302:8302/udp 
    -p 10302:8302 
    -p 10400:8400 
    -p 10500:8500 
    -p 10600:8600 
    -h node3 
    consul agent -server -bind=0.0.0.0 
    -join=192.168.145.130 -node-id=$(uuidgen | awk  '{print tolower($0)}') 
    -node=node3 
    -data-dir=/tmp/data-dir -client 0.0.0.0 -ui

sudo docker exec -t node1 consul members
sudo docker exec -t node1 consul operator raft list-peers

sudo docker run -d --name=node4 --restart=always 
    -e  'CONSUL_LOCAL_CONFIG={"leave_on_terminate":true}' 
    -p 11300:8300 
    -p 11301:8301 
    -p 11301:8301/udp  
    -p 11302:8302/udp 
    -p 11302:8302 
    -p 11400:8400 
    -p 11500:8500 
    -p 11600:8600 
    -h node4 
    consul agent  -bind=0.0.0.0 
    -retry-join=192.168.145.130 
    -node-id=$(uuidgen | awk  '{print tolower($0)}') 
    -node=node4 
     -client 0.0.0.0 -ui


sudo docker run -d --name=node5 --restart=always 
    -e  'CONSUL_LOCAL_CONFIG={"leave_on_terminate":true}' 
    -p 12300:8300 
    -p 12301:8301 
    -p 12301:8301/udp  
    -p 12302:8302/udp 
    -p 12302:8302 
    -p 12400:8400 
    -p 12500:8500 
    -p 12600:8600 
    -h node5 
    consul agent  -bind=0.0.0.0   -retry-join=192.168.145.130 
    -node-id=$(uuidgen | awk  '{print tolower($0)}') 
    -node=node5  -client 0.0.0.0 -ui
原文地址:https://www.cnblogs.com/kingsmart/p/15322480.html