正文
背景
骨折在家找自己的人比较少.
又因为出不去也没法做运动,就不如将之前没学习深入的地方学习下
先是进行Docker 搭建 redis cluster的处理.
当时发现必须使用 --net=host进行.
本来想尝试进行 overlay的网咯进行搭建
当然有一个目的是验证 overlay的性能损耗
结果使用了很多招都没有成功
但是想着至少可以记录下 跨主机 容器通信.
第一步学习consul
https://www.jb51.net/article/237838.htm
下载与安装
wget https://releases.hashicorp.com/consul/1.13.3/consul_1.13.3_linux_amd64.zip
unzip consul_1.13.3_linux_amd64.zip
scp consul /usr/bin/
第一台机器执行
docker run -d --network host -h consul01 --name=consul01 --restart=always -e CONSUL_BIND_INTERFACE=ens192 harbor.xxxx.online/xxxx/consul
第台机器执行
docker run -d --network host -h consul02 --name=consul02 --restart=always -e CONSUL_BIND_INTERFACE=ens192 harbor.xxxx.online/xxxx/consul
修改 Docker 与consul通信
- 第一台机器的修改
- 注意需要修改 docker 的 /usr/lib/systemd/system/docker.service 配置文件
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --cluster-store consul://10.110.139.194:8500 --cluster-advertise ens192:2376
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --cluster-store consul://10.110.139.194:8500 --cluster-advertise ens192:2376
--iptables=false \
--live-restore=false \
- 注意需要重启
systemctl daemon-reload && systemctl restart docker
创建consul的简单集群
主要命令如下:
consul01 节点不需要做任何操作可以进行查看
consul operator raft list-peers
另外一个机器执行命令就可以加入
但是我搞不明白谁是主谁是从.
consul join 10.110.139.94
然后再查看一下 list 就有了.
consul operator raft list-peers
Node ID Address State Voter RaftProtocol
consul02 2edd71b2-85dc-6c25-0000-5af80e10318e 10.110.139.196:8300 leader true 3
consul01 59e32106-916c-bafc-7d5d-19f19679ac92 10.110.139.194:8300 follower false 3
创建overlay的网卡
docker network create -d overlay multi_host
基于Kylin银河麒麟的镜像进行地址连通性检查
分别再两台机器上面执行命令:
docker run -it --net=multi_host harbor.xxxx.online/xxxx/kylinv10sp2:withFonts /bin/bash
然后执行
ip addr
然后可以验证可以互相ping同.
Redis Cluster的验证
我用了很多招,发现不行...