使用docker部署consul

作者: __Brick__ | 来源:发表于2019-05-20 23:19 被阅读30次

    1. 创建docker虚拟机

    1. 提前安装好docker与virtualbox,然后创建4个虚拟机
    docker-machine create --driver virtualbox Consul1
    docker-machine create --driver virtualbox Consul2
    docker-machine create --driver virtualbox Consul3
    docker-machine create --driver virtualbox Consul4
    
    2. 修改docker仓库为国内,重启虚拟机的docker
    sudo vi /etc/docker/daemon.json
    {
      "experimental" : true,
      "registry-mirrors" : [
        "https://registry.docker-cn.com"
      ]
    }
    
    sudo /etc/init.d/docker restart
    

    2. 部署consul

    1. 启动consul server
    docker run -h cnode1  --name consul -v /config:/config -v /data:/data --restart=always\
        -p   8300:8300 \
        -p   8301:8301 \
        -p   8301:8301/udp \
        -p   8302:8302 \
        -p   8302:8302/udp \
        -p   8400:8400 \
        -p   8500:8500 \
    progrium/consul -server \
    -bootstrap-expect 1 \
    -advertise 192.168.99.100
    

    然后依次在剩下每台虚拟机中部署并加入集群

    docker run -h cnode2 --name consul -d -v /config:/config -v /data:/data --restart=always\
        -p   8300:8300 \
        -p   8301:8301/udp \
        -p   8302:8302 \
        -p   8302:8302/udp \
        -p   8400:8400 \
        -p   8500:8500 \
    progrium/consul -server \
    -advertise 192.168.99.101 \
    -join  192.168.99.100
    

    部署完成效果如下


    image.png
    2.部署并注册服务

    部署、注册nginx

    curl -X PUT -d '{"id": "nginx","name": "nginx","address": "192.168.99.102","port": 80,"checks": [{"http": "http://192.168.99.102/","interval": "5s"}]}' http://127.0.0.1:8500/v1/agent/service/register
    
    image.png

    传输加密

    1. 通信结构

    QQ20190520-230253.png

    2. 加密配置

    从图中我们可以看到,consul有几种通信方式,有RPC和gossip,gossip用于维护集群节点关系,也就是包括leader选举、状态检查等等维护集群关系的通信都通过gossip来进行,gossip之间通信安全通过。数据的请求通过RPC协议进行数据传输。
    为保障通信安全,两种通信方式都有各自的加密方法
    goosip: 通过对称加密来对集群协议进行加密

    执行consul keygen 生成密钥,具体配置方法根据自身需求来,官方参考页
    面:https://learn.hashicorp.com/consul/security-networking/agent-encryption#enable-gossip-encryption-existing-cluster
    RPC: 通过ca数字证书进行可靠性验证,加密通过TLS进行
    consul tls cert create -server
    consul tls cert create -client
    两个命令生成证书,具体配置参数参考官方文档:
    https://learn.hashicorp.com/consul/security-networking/certificates

    其他内容待日后补充

    相关文章

      网友评论

        本文标题:使用docker部署consul

        本文链接:https://www.haomeiwen.com/subject/ccdrzqtx.html