要使用docker 原生的overlay,要满足任意的2个条件:
1,docker 运行在swarm 模式
2,使用键值存储docker 主机集群
这里使用consul 键值存储来部署
节点1/键值存储(Server):192.168.1.198
节点2(Client):192.168.1.199
1,下载consul二进制包 进行部署(下载到server节点)
wget https://releases.hashicorp.com/consul/0.9.2/consul_0.9.2_linux_amd64.zip
2,解压缩添加执行命令
unzip consul_0.9.2_linux_amd64.zip
mv consul /usr/bin/consul && chmod +x /usr/bin/consul
3,指定后台运行,并将启动信息重定向到日志里(指定类型为server 客户端信息绑定信息) -ui 可以通过网页访问看到consul的基本情况,-bind 监听的地址
nohup consul agent -server -bootstrap -ui -data-dir /var/lib/consul -client=192.168.1.198 -bind=192.168.1.198
&>/var/log/consul.log &
cat /var/log/consul.log \\查看日志 是否启动成功
4,server节点配置docker 守护进程consul(修改docker启动文件)consul://server地址
vi /lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store consul:// 192.168.1.198:8500
--cluster-advertise 192.168.1.198:2375(通告信息)
重新加载docker配置文件使更改生效
systemctl daemon-reload
service docker restart
5,client节点配置
vi /lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 --cluster-store consul:// 192.168.1.198:8500
--cluster-advertise 192.168.1.199:2375
重新加载使配置生效
systemctl daemon-reload
service docker restart
6,创建overlay网络(任意一台 最好是server 端,他会同步到其他node)
docker network create -d overlay multi_host(网络名)
7测试互通
docker run -itd --net=multi_host busybox (--net 加入overlay 网络)
ping ....
原文地址:http://blog.51cto.com/1014810/2116439
时间: 2024-10-11 16:59:27