zoukankan      html  css  js  c++  java
  • Docker在多台服务器部署consul集群

    Docker在多台服务器部署consul集群

    • 规划与准备

      • 本次计划部署的consul集群有6个节点,3个server类型,3个client类型
    节点IP
    类型
    端口
    172.18.69.40
    server1、client1
    8500/8600、58500/58600
    172.18.69.41
    server2、client2
    8500/8600、58500/58600
    172.18.69.42
    server3、client3
    8500/8600、58500/58600
     
    在第一台服务器中运行server作为leader
    docker run -d --name consul-1 -h=172.18.69.40 --net=host -e CONSUL_BIND_INTERFACE=eth0 -v /data/consul/config:/config/file consul:1.9.5 agent -config-dir=/config/file -server=true -client=0.0.0.0 -bind=172.18.69.40 -ui -bootstrap-expect=2
     
    接下来一台台加入集群
    docker run -d -v /data/consul/config:/config/file --name consul-2 -h=172.18.69.41 --net=host -e CONSUL_BIND_INTERFACE=eth0 consul:1.9.5 agent -config-dir=/config/file -server=true -client=0.0.0.0 -join=172.18.69.40 -ui
      接下来第二台加入集群
    docker run -d -v /data/consul/config:/config/file --name consul-3 -h=172.18.69.42 --net=host -e CONSUL_BIND_INTERFACE=eth0 consul:1.9.5 agent -config-dir=/config/file -server=true -client=0.0.0.0 -join=172.18.69.40 -ui
     
    • 接下来三个client加入集群
    docker run -d -v /data/consu-client-1/config:/config/file --name consul-client1 -h=client1 -p 58500:8500 -p 58600:8600 -p 58300:8300 -p 58301:8301 -p 58302:8302  -e CONSUL_BIND_INTERFACE=eth0 consul:1.9.5 agent -config-dir=/config/file -server=false -client=0.0.0.0 -join=172.18.69.40 -ui
    docker run -d -v /data/consu-client-2/config:/config/file --name consul-client2 -h=client2 -p 58500:8500 -p 58600:8600 -p 58300:8300 -p 58301:8301 -p 58302:8302  -e CONSUL_BIND_INTERFACE=eth0 consul:1.9.5 agent -config-dir=/config/file -server=false -client=0.0.0.0 -join=172.18.69.40 -ui
     
    docker run -d -v /data/consu-client-3/config:/config/file --name consul-client3 -h=client3 -p 58500:8500 -p 58600:8600 -p 58300:8300 -p 58301:8301 -p 58302:8302  -e CONSUL_BIND_INTERFACE=eth0 consul:1.9.5 agent -config-dir=/config/file -server=false -client=0.0.0.0 -join=172.18.69.40 -ui

    查看状态

    • 查看投票状态
    docker exec -t consul-1 consul operator raft list-peers
    • 查看集群成员
    docker exec -t consul-1 consul members

    KV存储的导入导出

     consul直接提供命令对KV里存储的数据进行导入导出,如下

    $ ts=$(date +%Y%m%d%H%M%S)
    # 导出所有kv键值对,注意最后一个参数是导出键值对的前缀,为空字符串说明要导出所有 $
    docker exec -t consul-1 consul kv export --http-addr=http://127.0.0.1:8500 -token=“xxxx-xxxx-xxxx-xxxx-xxxxxx” > /config/file/consul_kv_$ts.json
    # 查看下导出的json文件格式 
    $
    cat /config/file/consul_kv_$ts.json

    发现是每个键值对都是json数值中一项,其中key为键值对Key的名称,value为键值对Value的base64编码,使用base64 -d命令编码就可以看到原始的value值,如:

    $ echo 'eyJ2ZXJzaW9uX3RpbWVzdGFtcCI6IC0xfQ==' | base64 -d
    {"version_timestamp": -1}

    导入就更简单了:

    consul kv import --http-addr=http://ip:8500 -token="xxxx-xxxx-xxxx-xxxx-xxxxxx" @./consul_kv_20180521150322.json
    cat consul-kv.json | consul kv import  -http-addr=http://ip:8500 -token="xxxx-xxxx-xxxx-xxxx-xxxxxx" -

    http://t.zoukankan.com/gudanshiyigerendekuanghuan-p-10603516.html

  • 相关阅读:
    Dom对象和jQuery对象区别 jQuery对象转换为Dom对象、、Dom对象转换为jquery对象
    jquery 1,2,3三个版本的下载、区别/以及jquery使用步骤,jQuery入口函数
    2021年3月4日 第一周开课博客
    2021年3月3日
    2021年3月2日
    2021年2月24日 记账本开发07
    2021年2月23日 记账本开发06
    2021年2月22日 记账本开发05
    程序员修炼之道读书笔记03
    2021年2月21日 记账本开发04
  • 原文地址:https://www.cnblogs.com/user-sunli/p/14630784.html
Copyright © 2011-2022 走看看