理解网络策略 API

介绍

Kubernetes 风格集群中的网络安全涉及控制哪些工作负载(Pods、命名空间)可以通信以及如何通信。其核心是网络策略 API,支持分段(第 3/4 层)和流量控制。随着时间推移,更高级的 API 层出现,以支持集群范围的安全防护、多租户强制执行、零信任模型以及应用层(第 7 层)过滤。

本文重点介绍 API 模型 v1alpha1:AdminNetworkPolicy(ANP)和 BaselineAdminNetworkPolicy(BANP),它们在网络策略 API 中的位置,与标准 NetworkPolicy 的关系,以及如何在规划未来版本的同时,今天使用它们。

KUBE-OVN 对网络策略的评估

当应用多个网络策略时,它们遵循严格的优先级顺序:Admin Network Policy 优先于 Network Policy,后者又优先于 Baseline Admin Network Policy。

操作步骤如下:

带作用域的 AdminNetworkPolicy 与带命名空间作用域的 NetworkPolicy 有何区别?

维度命名空间作用域的 NetworkPolicy集群作用域的 AdminNetworkPolicy
作用域仅适用于单个命名空间适用于整个集群
受众 / 所有权应用开发人员或命名空间所有者平台管理员或集群管理员
主要用途工作负载级别的微分段(L3/L4)强制执行全局或跨命名空间访问规则
控制目标podSelector 选定的命名空间内 Pods由顶层 subject 选定的命名空间或 Pods
策略优先级中等优先级 — 在管理员级别规则之后评估优先级更高 — 覆盖命名空间策略
典型用例允许前端 → 后端,限制数据库访问等限制租户间流量,强制出口限制,设置全局保护
可见性仅影响创建它的命名空间可同时影响多个命名空间
跨命名空间规则仅通过 namespaceSelector 间接允许一等公民的跨命名空间流量控制
风险面配置错误影响单个命名空间配置错误可能影响整个集群流量