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

https://github.com/flannel-io/flannel

https://github.com/EasyTier/Easytier

posted on 2025-06-04 08:00  荣锋亮  阅读(98)  评论(0)    收藏  举报

导航