结论先行:容器环境做微隔离,能不能落地往往取决于容器网络插件的适配。三层路由型、Overlay 隧道型与直通型三类网络方案,决定了策略执行点位在哪里、源地址是否可见、以及策略能否随 Pod 迁移自动跟随。选型前先确认三件事:执行组件以什么形态部署、能否拿到 Pod 的真实源身份、插件自带的网络策略与微隔离策略冲突时以谁为准。
三类容器网络方案,决定了策略怎么落
| 网络方案 | 报文路径特点 | 策略执行点位 | 对微隔离的影响 |
|---|---|---|---|
| 三层路由型 | 容器网段通过路由协议广播,不做封装 | 节点侧内核或网卡层 | 源地址真实可见,策略判定最直接,性能开销小 |
| Overlay 隧道型 | 跨节点流量封装在隧道中传输 | 节点侧,需在封装前后处理 | 要确认能否识别内层身份,否则只能按节点粒度管控 |
| 直通型 | 容器直接接入二层网络,拥有独立地址 | 节点侧或接入交换机侧 | 与物理网络同一平面,需与既有 VLAN 规划协同 |
判断适配难度的简单方法:抓一个跨节点访问的数据包,看在节点上能不能同时拿到通信双方的容器身份。拿得到,策略就能做到 Pod 级;拿不到,只能退回到节点级。
三个必须问清的适配问题
执行组件以什么形态部署
| 形态 | 覆盖范围 | 性能影响 | 适用情况 |
|---|---|---|---|
| 节点级守护进程 | 该节点上所有 Pod,随节点自动部署 | 开销集中在节点,与 Pod 数量弱相关 | 集群规模大、Pod 生命周期短 |
| 边车代理 | 随 Pod 注入,粒度更细 | 每个 Pod 多一跳,高并发下延迟更明显 | 需要应用层身份与细粒度授权 |
大多数生产环境更倾向节点级守护进程:不改动业务镜像,新 Pod 创建即被纳管,运维成本更低。
源身份是否可见
地址转换或隧道封装会把真实发起方藏起来。此时应启用身份识别能力,按工作负载标签而非地址来判定访问关系,否则策略会随地址漂移而失效。
与插件自带网络策略的分工
多数容器平台自带网络策略能力,与微隔离在功能上有重叠。建议明确边界:容器平台策略管"命名空间默认拒绝"这类基础闸门,微隔离管跨业务、跨环境的细粒度白名单,避免两套规则互相覆盖。
部署与验证顺序
- 观察模式接入。以节点级守护进程方式部署,只采集不阻断,自动学习集群内的通信关系。
- 按业务身份分组。用命名空间、工作负载、环境等标签给 Pod 归类,而不是按地址清单。
- 生成策略并核对。基于学习结果生成白名单,与业务方共同核对,补全遗漏的调用关系。
- 测试态验证。策略下发但不阻断,观察一到两周,覆盖周末批处理与月末结算周期。
- 分批切换防护态。按业务优先级分批生效,每批之间保留观察窗口并准备好回滚方案。
四个常见翻车点
- 按 Pod 地址写策略。Pod 重建后地址变化,策略立刻失效——必须绑定业务身份。
- 忽略宿主网络模式的 Pod。这类 Pod 直接使用节点网络,容易绕过按 Pod 粒度设置的策略,需要单独纳管。
- 短生命周期任务被误拦。定时任务、批处理作业只在特定时段通信,学习周期太短会漏掉,需延长观察期。
- 忘记预留运维通道。切换防护态前,先把运维管理网与跳板机的访问加进白名单。
先问网络,再谈策略
容器微隔离的失败案例,多数不是策略工具不好用,而是前期没弄清容器网络到底怎么转发。把网络方案、执行形态、身份可见性三件事问清楚,后面的部署会顺利很多。
奇摩在服务金融与制造客户时,通常把"跨节点抓包能否识别双方 Pod 身份"作为容器微隔离选型的第一道测试题。若您正在评估容器环境的东西向管控方案,欢迎预约咨询。
