第 1 章 了解网络策略 API


网络策略使用集群范围的网络策略 API 定义。通过在这些不同级别上定义网络策略,您可以为集群创建复杂的网络安全配置,包括完整的多租户隔离。

网络策略及其范围

集群范围的网络策略

集群和网络管理员可以使用 AdminNetworkPolicy 在集群级别上定义网络策略。AdminNetworkPolicy 功能由两个 API 组成: AdminNetworkPolicy API 和 BaselineAdminNetworkPolicy API。这些 API 用于设置可应用到整个集群的规则,或委派给命名空间范围的 NetworkPolicy

当设置为 "Allow" 或 "Deny" 时,使用 AdminNetworkPolicy API 定义的策略优先于所有其他策略类型。但是,管理员也可以使用"Pass"将给定策略负责委派给命名空间范围的 NetworkPolicy,以允许应用程序开发人员和命名空间租户控制其项目网络安全性的特定方面。

使用 BaselineAdminNetworkPolicy API 定义的策略仅在没有其他网络策略覆盖它们时才适用。当您使用 AdminNetworkPolicy API 将网络策略方面委托给命名空间范围的 NetworkPolicy 时,您还应在 BaselineAdminNetworkPolicy 中定义合理的最小限制。这样可确保在命名空间 NetworkPolicy 没有足够保护时,集群级别的网络安全性基准级别。

命名空间范围的网络策略
应用程序开发人员和命名空间租户可以使用 NetworkPolicy API 为特定命名空间定义网络策略规则。一个命名空间的 NetworkPolicy 中的规则优先于使用 BaselineAdminNetworkPolicy API 配置的集群范围规则,或用于集群范围 AdminNetworkPolicy API 中委派或"传递"的集群范围规则。

如何评估和应用网络策略

当建立网络连接时,网络供应商(默认为 OVN-Kubernetes)会根据网络策略规则检查连接详情,以确定如何处理连接。

OVN-Kubernetes 按以下顺序评估针对网络策略对象的连接:

  1. 在 AdminNetworkPolicy 层检查 是否有匹配项。

    1. 如果连接与 AllowDeny 规则匹配,请按照该规则和停止评估。
    2. 如果连接与 Pass 规则匹配,请移到 NetworkPolicy 层。
  2. 在 NetworkPolicy 层检查 是否有匹配项。

    1. 如果连接与规则匹配,请按照该规则进行操作并停止评估。
    2. 如果没有找到匹配项,请移到 BaselineAdminNetworkPolicy 层。
  3. 遵循 BaselineAdminNetworkPolicy 层中的匹配规则。

图 1.1. OVN-Kubernetes 评估网络策略

下表解释了集群范围的 AdminNetworkPolicy API 和命名空间范围 NetworkPolicy API 之间的主要区别。

Expand
策略元素AdminNetworkPolicyNetworkPolicy

适用的用户

集群管理员

命名空间所有者

影响范围

Cluster

Namespace

丢弃流量

当显式 Deny 操作设置为一个规则时支持。

在策略创建时通过隐式 Deny 隔离时支持。

委派流量

Pass 操作设置为一个规则时被支持。

不适用。

允许流量

显式 Allow 操作设置一个规则时被支持。

所有规则的默认操作都是 allow。

策略中的规则优先级

取决于它们出现在 ANP 中的顺序。位置更高的规则有更高的优先级。

规则是添加的。

策略优先级

在 ANP 中,priority 字段用于设置评估的顺序。策略优先级号越低,优先级越高。

在策略之间没有策略排序。

功能优先级

首先通过 1 层 ACL 和 BANP 评估,最后通过第 3 层 ACL 评估。

在 ANP 之后,BANP 之前强制实施,它们会在 ACL 层 2 中进行评估。

匹配 pod 选择

在命名空间之间可应用不同的规则。

可以在单一命名空间中的 pod 之间应用不同的规则。

集群出口流量

通过节点网络 对等点支持

通过 ipBlock 字段以及接受的 CIDR 语法支持。

集群入口流量

不支持。

不支持。

完全限定域名 (FQDN) 对等支持

不支持。

不支持。

命名空间选择器

支持通过使用 namespaces.matchLabels 字段进行命名空间的高级选择。

支持使用 namespaceSelector 字段进行基于标签的命名空间选择。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat