• Docker安装Consul集群


    Docker 安装Consul集群

    使用windows 环境,Docker desktop community 构建consul集群。

    1、docker 容器网络

    docker安装后,默认会创建三种网络类型,bridge、host和none,可通过如下命令查看:

    sudo docker network ls
    
    NETWORK ID          NAME                DRIVER              SCOPE
    32c1b52444f2        bridge              bridge              local
    6a2d84a36162        host                host                local
    cff3a04a41f6        none                null                local
    
    
    • bridge:网络桥接:默认情况下启动、创建容器都是使用该模式,每次容器重启都会按顺序获取对应的ip地址,这就导致每次重启后容器的ip发生变化。
    • none:无指定网络,启动时通过:-network=none 则docker不会分配局域网ip。
    • host:主机网络:docker容器的网络会附属在主机上,两者互通。

    2、创建固定ip的容器

    1. 创建自定义网络类型,并指定网段
      docker network create --subnet=192.168.0.0/16 staticnet

    --subnet=192.168.0.0/16 子网网段
    staticnet 自定义网络类型

    再次查看docker 网络类型:docker network ls 会多出来一个自定义的网络类型。

    1. 使用新的网络类型创建并启动容器

    udo docker run -it --name userserver --net staticnet --ip 192.168.0.2 mysql:5.7
    参数说明:--net 指定网络类型。--ip 指定容器ip(对应网络类型下的网段内)

    创建单节点Consul

    docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=cs1 --net staticnet --ip 192.168.0.2 consul agent -server -bootstrap -ui -node=Server01 -client='0.0.0.0'
    

    参数说明:
    -p <hostPort>:<containerPort> 映射容器端口到主机端口
    -v <hostDataDir>:<containerDataDir> 卷文件映射
    --net <networktype> 指定网络类型这里使用自定以的网络类型
    --ip <ipaddress> 指定容器在网络类型下的ip地址
    consul ... 开始执行consul的命令
    agent -server 表示启动 Agent 进程以consul server模式
    agen -client 表示启动 Agent 进程以consul client模式
    -bootatrap 表示此节点时server-leader,通常多个server会采用Raft算法选举产生一个leader,剩下的server为follow
    -ui 启动web ui管理界面,默认端口:8500 须开放出来。
    -node 节点名称,集群中唯一
    -client='0.0.0.0' 将绑定客户端地址,0.0.0.0表示所有地址都能访问
    -join 加入某一集群中

    上面命令会启动一个Consul节点,名称为:Server01,端口已经进行了映射,可通过主机地址:8500 访问web ui管理页面。

    组装集群(3个server+2个client)

    1、查看刚刚创建的leader节点的信息:
    docker exec cs1 consul members
    输出:

    Node      Address           Status  Type    Build  Protocol  DC   Segment
    Server01  192.168.0.2:8301  alive   server  1.6.1  2         dc1  <all>
    

    可以看到第一个节点的地址。
    2、创建第二个server并加入集群

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=cs2 --net staticnet --ip 192.168.0.3 consul agent -server -node=Server02 -join='192.168.0.2'
    

    3、创建第三个server并加入集群

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=cs3 --net staticnet --ip 192.168.0.4  consul agent -server -node=Server03 -join='192.168.0.2'
    
    server加入完成后,在web管理页面就可以看到新增加的节点,以及当前的leader节点。

    4、创建client并加入集群

    -- client01
     docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip05 --net staticnet --ip 192.168.0.5  consul agent -node client01 -join='192.168.0.2' -client='0.0.0.0'
    
    --client02
     docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip06 --net staticnet --ip 192.168.0.6  consul agent -node client02 -join='192.168.0.2' -client='0.0.0.0'
    
    -- client03
     docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip07 --net staticnet --ip 192.168.0.7  consul agent -node client03 -join='192.168.0.2' -client='0.0.0.0'
    
  • 相关阅读:
    [navicat premium] [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
    阿里云推荐码优惠享9折
    [eclipse]maven 编译时报错:编码 UTF-8 的不可映射字符
    Aqua Data Studio【下载】ads-windows-x64-16.0.5
    PL/SQL Develper配置Oracle client
    SecureCRT 访问本地Linux虚拟机NAT网络(VMware workstation 9+secureCRT+Ubuntu12.04)
    Spring官方下载地址
    dom4j创建XML文件
    azure devops
    html里如何获取每次点击select里的option值
  • 原文地址:https://www.cnblogs.com/pluto-net/p/11889593.html
Copyright © 2020-2023  润新知