• centos 使用 docker搭建consul集群


    1、拉取consul镜像   这里指定了版本,你也可以不指定版本

    docker pull consul:1.4.4

    2、创建单机版consul,单机版 Consul,单机肯定需要安装 Server 模式的 Consul    

    docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 consul:1.4.4 agent -server -bootstrap -ui -node=1 -client='0.0.0.0'
    
    
    -d:参数指定 Docker 网络类型,有 bridge、overlay。
    
    -P :是容器内部端口随机映射到主机的高端口。
    -p : 是容器内部端口绑定到指定的主机端口。
    
    
    –net=host docker参数, 使得docker容器越过了netnamespace的隔离,免去手动指定端口映射的步骤
    
    -server consul支持以server或client的模式运行, server是服务发现模块的核心, client主要用于转发请求
    
    -advertise 将本机私有IP传递到consul
    
    -bootstrap-expect 指定consul将等待几个节点连通,成为一个完整的集群
    
    -retry-join 指定要加入的consul节点地址,失败会重试, 可多次指定不同的地址
    
    -client consul绑定在哪个client地址上,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1
    
    -bind 该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0
    
    -allow_stale 设置为true, 表明可以从consul集群的任一server节点获取dns信息, false则表明每次请求都会经过consul server leader
    
    --name DOCKER容器的名称
    
    -client 0.0.0.0 表示任何地址可以访问。
    
    -ui  提供图形化的界面。

    -agent : 表示启动 Agent 进程。

    -server:表示启动 Consul Server 模式。

    -client:表示启动 Consul Cilent 模式。

    -bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。

    -ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放

    -node:节点的名称,集群中必须是唯一的。

    -client:表示 Consul 将绑定客户端接口的地址,0.0.0.0 表示所有地址都可以访问。

    -join:表示加入到某一个集群中去。 如:-json=192.168.1.23

    3、创建集群

    3.1通过命令查一下当前运行 Consul 集群信息

    docker exec consul_server_1 consul members

    3.2新增server 节点 node2,node3 加入到集群,

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_2 consul:1.4.4 agent -server -node=2  -join='172.17.0.3'
    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_3 consul:1.4.4 agent -server -node=3  -join='172.17.0.3'

    3.3新增client节点加入到集群

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_client_1 consul:1.4.4 agent -client -node=1 -join='172.17.0.3' -client='0.0.0.0'
    
    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_client_2 consul:1.4.4 agent -client -node=2 -join='172.17.0.3' -client='0.0.0.0'

    实际上每个consul sever节点都应该部署在单台服务器上。

     参考文档:https://www.cnblogs.com/edisonchou/p/consul_cluster_based_on_docker_introduction.html#4402340

                      https://www.cnblogs.com/lfzm/p/10633595.html

  • 相关阅读:
    教你当主管:如何降低你的员工流失率?
    你问我这算什么
    推荐:职场提升的10条捷径
    压力从何而来呢?千万不要2008年结婚
    怎样“管理”你的上司?
    HTTP.sys
    IIS书籍
    IIS目录
    HTTP服务
    在 IIS 7 中使用配置文件
  • 原文地址:https://www.cnblogs.com/choii/p/11898931.html
Copyright © 2020-2023  润新知