Spring Cloud dibo容器

使用docker部署consul

2019-05-20  本文已影响30人  __Brick__

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

其他内容待日后补充

上一篇下一篇

猜你喜欢

热点阅读