容器集群物理节点部署的难点,不只是把服务器加入 Kubernetes 集群,还要让管理流量、容器业务流量、存储流量和对外访问流量彼此隔离,并确保一台服务器、一个机架或一组交换机故障时,影响范围可控。合理设计网络平面和故障域,通常比单纯增加节点数量更能提升集群稳定性。
先按流量类型划分网络
建议在规划阶段建立流量清单,而不是直接照搬某个 CNI 插件的默认配置。至少应区分以下几类网络:
- 管理网络:承载 SSH、操作系统更新、节点心跳和 Kubernetes API 访问,通常只允许运维网段或管理跳板机访问。
- 节点业务网络:用于 Pod 间通信、服务访问和必要的节点间控制流量。带宽和延迟要求取决于业务东西向流量规模。
- 存储网络:如果使用 Ceph、NFS 或其他网络存储,宜使用独立 VLAN 或物理接口,避免备份、重平衡等流量挤占业务链路。
- 出口网络:用于访问镜像仓库、外部 API 或互联网服务,应通过防火墙、NAT 或代理控制出口范围。
隔离不等于必须为每类流量购买一套交换机。小型集群可以通过 VLAN、ACL 和独立网卡实现逻辑隔离;对延迟敏感或存储流量较大的环境,则更适合采用独立物理链路。前者成本较低,但故障可能共享交换设备;后者边界清晰,却增加了布线和维护工作。
把物理拓扑变成可调度的故障域
容器集群物理节点部署应记录每台节点所在的数据中心、机房、机架、机架顶端交换机和供电组。Kubernetes 可以通过拓扑标签和反亲和规则,让副本分散到不同故障域,而不是仅仅分散到不同主机。
建议划分四级边界
- 节点级:单台服务器的网卡、主板或操作系统发生故障。
- 机架级:同一机架的供电、上联光纤或 ToR 交换机发生故障。
- 网络区域级:一组交换机、VLAN 或路由设备出现异常。
- 机房或可用区级:整片机房无法提供服务。
例如,一个有三个副本的无状态服务,可以优先分布到不同机架;有较高可用要求的服务,则进一步分散到不同可用区。调度约束越严格,越可能出现资源碎片,因此需要同时检查各故障域的可用容量。对于有状态工作负载,还要确认存储副本位置与计算节点位置是否具备一致的故障隔离能力。
物理网卡与交换机的实施方法
网卡设计要结合带宽、冗余和运维能力。两张网卡做链路聚合可以提高可用性,但是否能跨交换机工作,取决于交换机是否支持 MLAG、堆叠或其他多机链路聚合机制。若设备不支持,简单把两条链路接入不同交换机并不能自动形成可靠冗余。
- 先为每台节点登记接口名称、MAC 地址、连接的交换机端口和所属机架,避免更换硬件后拓扑记录失效。
- 在交换机侧创建管理、节点业务、存储和出口 VLAN,并用 ACL 限制跨网段访问,只开放实际需要的端口。
- 在操作系统中固定接口命名,配置链路聚合或主动-备用模式;完成后分别拔掉一条链路,确认节点和容器通信仍符合预期。
- 在 Cilium、Calico 等 CNI 配置中明确 Pod 网段、节点网段、封装方式和 MTU。使用 VXLAN、Geneve 等封装时,应为额外报文头预留空间,避免大报文被丢弃或分片。
- 将节点、交换机、链路和 CNI 的指标接入统一监控,重点观察丢包、接口错误、链路抖动、ARP 或邻居表异常,以及不同故障域之间的连通性。
隔离策略的选择与验证
NetworkPolicy 适合限制 Pod 之间的访问,但不能替代交换机 ACL、防火墙和节点操作系统安全策略。可以先采用默认拒绝,再按命名空间、服务标签和端口逐项放行。管理接口、节点代理和存储端口应避免直接暴露给普通业务网段。
验证时不要只测试“节点是否在线”,还应模拟单网卡断开、单台节点关机、ToR 交换机不可用、一个机架断电以及跨可用区链路异常。每次测试都记录业务连接是否中断、Pod 是否重新调度、DNS 是否可用,以及恢复后是否出现重复连接或流量倾斜。容器集群物理节点部署只有经过这些演练,故障域设计才算真正可用。
一份可落地的检查表
| 检查项目 | 合格标准 |
|---|---|
| 网络平面 | 管理、业务、存储和出口流量边界明确 |
| 物理拓扑 | 节点与机架、交换机、供电组有对应记录 |
| 调度策略 | 关键副本不会集中在同一节点或机架 |
| 访问控制 | 默认拒绝,业务端口按需放行 |
| 故障演练 | 完成链路、节点、机架和网络设备级测试 |
常见问题
是否必须为每种流量使用独立网卡?
不必须。流量规模较小且交换机支持可靠 VLAN 和 ACL 时,可以共享物理链路;存储或东西向流量明显时,独立接口更稳妥。
VLAN 隔离能否替代物理隔离?
不能完全替代。VLAN 能减少广播和访问范围,但节点、交换机或上联链路仍可能是共同故障点。

为什么副本分散了仍会一起故障?
它们可能仍位于同一机架、同一交换机或同一可用区。调度规则应覆盖实际存在的物理故障域。
MTU 应该如何确认?
先确认底层链路允许的最大帧长,再扣除 CNI 封装开销,并用实际路径测试验证,而不是只查看节点本地配置。
最终,容器集群物理节点部署应把网络分区、物理拓扑、调度规则和故障演练视为一个整体。边界越清楚,故障影响越容易预测,后续扩容和维护也越不容易破坏隔离设计。


