zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    idea的tomcat配置
    idea设置类文件的头部信息
    设置idea注释颜色
    Idea设置字体
    python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)
    python 全栈开发,Day10(动态参数,命名空间,作用域,函数嵌套)
    python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)
    python 全栈开发,Day8(文件操作)
    python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)
    python 全栈开发,Day6补充(is,小数据池,编码转换)
  • 原文地址:https://www.cnblogs.com/choii/p/11898931.html
Copyright © 2011-2022 走看看