首页主机资讯CentOS Overlay与Docker网络如何协同工作

CentOS Overlay与Docker网络如何协同工作

时间2025-11-26 13:34:03发布访客分类主机资讯浏览793
导读:CentOS 上的 Overlay 与 Docker 网络协同工作 一、概念澄清 在 Docker 语境中,Overlay通常指跨主机的网络驱动,基于VXLAN封装在物理网络上构建二层覆盖网,使不同宿主机上的容器像在同一局域网中通信。它依...

CentOS 上的 Overlay 与 Docker 网络协同工作

一、概念澄清

  • 在 Docker 语境中,Overlay通常指跨主机的网络驱动,基于VXLAN封装在物理网络上构建二层覆盖网,使不同宿主机上的容器像在同一局域网中通信。它依赖 Docker 的CNM/Libnetwork模型与分布式状态同步(Swarm 内置或外部 K/V 存储如 Consul/Etcd)。
  • 与之不同,OverlayFS是 Docker 的存储驱动(镜像/层合并),用于节省磁盘空间,和网络无关。两者名称相似但职责完全不同,避免混淆。

二、协同工作机制

  • 控制平面:创建 Overlay 网络时,Docker 分配子网VNI,并通过Swarm 控制面或外部KV 存储将网络配置分发到各节点,保持一致性。
  • 数据平面:容器发出的原始帧被接入主机网桥,再由VXLAN 接口封装为UDP 4789报文,经物理网络送达目标主机;目标主机解封装后还原二层帧并送入对应容器。
  • 协同要点:物理网络的IP 可达性内核转发是基础;Overlay 负责容器层的身份与隔离自动发现,两者分层解耦、协同完成跨主机通信。

三、在 CentOS 上的部署与验证

  • 前提准备
    • 所有节点启用IP 转发:sysctl -w net.ipv4.ip_forward=1;确保物理网络允许UDP 4789(VXLAN)、Swarm 管理端口TCP 2377与节点通信端口TCP/UDP 7946通行(云环境需放通安全组/ACL)。
    • 建议将宿主机物理网卡MTU 调整为 1450,避免 VXLAN 封装导致分片(应用层可配合设置 MSS)。
  • 方式 A(推荐)—使用 Docker Swarm 内置 Overlay
    • 初始化 Swarm:docker swarm init(工作节点执行 docker swarm join …)。
    • 创建可手动接入的 Overlay:docker network create -d overlay --attachable my-overlay。
    • 部署服务或启动容器:docker service create --network my-overlay --replicas 2 nginx 或 docker run -it --rm --network my-overlay centos:7。
  • 方式 B—使用外部 K/V(Consul/Etcd)驱动 Overlay
    • 启动 Consul(示例):docker run -d --restart always -p 8500:8500 -p 8600:53/udp -h consul progrium/consul -server -bootstrap。
    • 配置 Docker 守护进程使用 K/V 存储并重启:在 /etc/docker/daemon.json 中加入 { “cluster-store”: “consul://< consul_ip> :8500”, “cluster-advertise”: “< host_iface_ip> :2376” } 执行 systemctl restart docker。
    • 在各节点创建同名 Overlay 网络并互通测试。
  • 连通性与排障
    • 容器间直连:docker exec -it ping < c2_ip> ;跨主机建议使用服务名/DNS而非硬编码 IP。
    • 抓包验证封装:在宿主机物理口抓 UDP 4789,确认 VXLAN 报文;查看 VXLAN/FDB 表与主机路由是否正确。

四、性能与安全最佳实践

  • 性能
    • 合理设置MTU=1450(或依据路径 MTU 测试微调),避免分片;必要时开启网卡VXLAN 硬件卸载(若支持)。
    • 对延迟敏感流量,评估是否采用Host 网络Underlay(如 macvlan/CNI)替代 Overlay。
  • 安全
    • 启用加密 Overlay:docker network create -d overlay --opt encrypted my-secure-net(Swarm 模式)。
    • 严格管控UDP 47892377/7946访问,仅对可信节点开放;结合TLS保护管理面与控制面通信。

五、常见误区与排查要点

  • OverlayFS(存储)误认为Overlay 网络,导致配置方向错误;前者在 /etc/docker/daemon.json 的 “storage-driver”,后者通过 docker network create -d overlay 创建。
  • 未启用IP 转发或物理网络阻断 UDP 4789,Overlay 无法建立隧道;检查 sysctl 与防火墙/云安全组。
  • 未将节点加入同一 Swarm或未共享外部 K/V,导致各节点看不到同名 Overlay 网络;检查 docker node ls 或 K/V 状态。
  • 容器跨主机不通时,优先用服务名访问(内置 DNS),再用容器 IP 直连定位问题;必要时抓包与查看FDB/路由表。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Overlay与Docker网络如何协同工作
本文地址: https://pptw.com/jishu/756644.html
怎样在CentOS Overlay中配置DNS解析 如何监控CentOS Overlay的网络状态

游客 回复需填写必要信息