docker-compose 使用外部网络+ sd-wan 实现跨主机网络处理
docker 实际上有自己的docker swarm 以及支持网络插件(包含不少三方的),当然k8s 周边也提供了不少cni 网络插件
以下是一个基于sd-wan 的玩法,可以解决跨主机以及跨云的容器网络访问
参考设计
- 参考如下图

- 简单说明
以上核心还是基于docker的bridge network 同时对于部署在容器上的服务通过docker-compose 部署,docker-compose 使用规划好的network,之后通过sd-wan agent 将network 暴露给sd-wan 网络中,这样,跨主机的容器服务以及其他服务可以直接访问容器ip
- docker-compose 参考部署
共享网络(实际使用每台主机都需要创建network,同时网络不能冲突)
docker network create --driver bridge --subnet 172.30.0.0/16 shared-net
对于主机容器部署服务通过docker-compose 管理
version: "3"
services:
s3:
image: xxxxxx
networks:
- shared-net
ports:
- "9000:9000"
- "9001:9001"
networks:
shared-net:
external: true
说明
以上没有直接使用docker 周边的网络插件,以及一些中心化的网络解决方案(比如flannel 依赖etcd,其他一些网络方案也需要一些存储),机制上就是通过简单的sd-wan 能力以及网络规划约定实现一些简单的网络访问,类似的sd-wan 解决方案很多,开源的也特别多
参考资料
https://docs.docker.com/reference/compose-file/networks/#external
浙公网安备 33010602011771号