Kubernetes 风格集群中的网络安全涉及控制哪些工作负载(Pods、命名空间)可以通信以及如何通信。其核心是网络策略 API,支持分段(第 3/4 层)和流量控制。随着时间推移,更高级的 API 层出现,以支持集群范围的安全防护、多租户强制执行、零信任模型以及应用层(第 7 层)过滤。
本文重点介绍 API 模型 v1alpha1:AdminNetworkPolicy(ANP)和 BaselineAdminNetworkPolicy(BANP),它们在网络策略 API 中的位置,与标准 NetworkPolicy 的关系,以及如何在规划未来版本的同时,今天使用它们。
当应用多个网络策略时,它们遵循严格的优先级顺序:Admin Network Policy 优先于 Network Policy,后者又优先于 Baseline Admin Network Policy。
操作步骤如下:
| 维度 | 命名空间作用域的 NetworkPolicy | 集群作用域的 AdminNetworkPolicy |
|---|---|---|
| 作用域 | 仅适用于单个命名空间 | 适用于整个集群 |
| 受众 / 所有权 | 应用开发人员或命名空间所有者 | 平台管理员或集群管理员 |
| 主要用途 | 工作负载级别的微分段(L3/L4) | 强制执行全局或跨命名空间访问规则 |
| 控制目标 | 由 podSelector 选定的命名空间内 Pods | 由顶层 subject 选定的命名空间或 Pods |
| 策略优先级 | 中等优先级 — 在管理员级别规则之后评估 | 优先级更高 — 覆盖命名空间策略 |
| 典型用例 | 允许前端 → 后端,限制数据库访问等 | 限制租户间流量,强制出口限制,设置全局保护 |
| 可见性 | 仅影响创建它的命名空间 | 可同时影响多个命名空间 |
| 跨命名空间规则 | 仅通过 namespaceSelector 间接允许 | 一等公民的跨命名空间流量控制 |
| 风险面 | 配置错误影响单个命名空间 | 配置错误可能影响整个集群流量 |