配置网络资源

配置某些网络资源时,必须注意一些限制。

标记和标签的限制

标记具有以下限制:
  • 标记范围具有 128 个字符的限制。
  • 标记值具有 256 个字符的限制。
  • 每个对象最多可以具有 30 个标记。
当 Kubernetes 或 OpenShift 注释被复制到
NSX
范围和标记,并且超出限制时,这些限制可能会导致出现问题。例如,如果某个标记适用于交换机端口,而该标记被用于防火墙规则,则可能无法按预期方式应用该规则,因为注释键或值在复制到范围或标记时被截断。
标签具有以下限制:
  • 每个 pod 不能超过 25 个标签。
  • 每个命名空间不能超过 27 个标签。
  • Ingress 控制器 pod 不能超过 24 个标签。

网络策略

NetworkPolicy
资源具有以下限制:
  • podSelector
    namespaceSelector
    最多只能具有 4 个
    matchLabels
  • ingress from
    部分或
    egress to
    部分中,如果您的某个元素同时指定了
    namespaceSelector
    podSelector
    ,则
    namespaceSelector
    最多只能选择 5 个命名空间。否则,将出现错误。此类规范的示例(请注意,在
    podSelector
    前面没有连字符):
    - namespaceSelector: matchLabels: project: myproject podSelector: matchLabels: role: db
  • 对于任何输入或输出规则,
    namespaceSelector
    podSelector
    的总数不能超过 5。例如,不允许以下规则,因为该规则总共包含 6 个选择器:
    ingress: - namespaceSelector: matchLabels: project: myproject1 - namespaceSelector: matchLabels: project: myproject2 - namespaceSelector: matchLabels: project: myproject3 - podSelector: matchLabels: role: db - podSelector: matchLabels: role: app - podSelector: matchLabels: role: infra
  • to.ports
    部分中不支持具有
    namedPorts
    的允许所有输出网络策略。
  • 在策略模式下,在
    podSelector
    namespaceSelector
    中指定
    matchExpressions
    时,最多允许包含一个
    In
    运算符。如果同时指定
    namespaceSelector
    podSelector
    ,则其中一个最多可以包含一个
    In
    运算符。这两者不能都包含
    In
    运算符。例如,不允许使用以下规范:
        - namespaceSelector:         matchExpressions:         - {key: key1, operator: In, values: [value1]}       podSelector:         matchExpressions:         - {key: key1, operator: In, values: [value1]}
  • 在管理器模式下,在
    podSelector
    namespaceSelector
    或者
    namespaceSelector
    podSelector
    中指定
    matchExpressions
    时,对
    In
    运算符的数量没有任何限制。
  • protocol
    字段中不支持具有 SCTP 的网络策略。
要解决这些限制,您可以创建具有更具体的
matchLabels
的网络策略,或者将一个网络策略替换为多个需要的选择器数少于 5 个的网络策略。
如果 NCP 不支持网络策略,NCP 会将其注释为错误。您可以更新网络策略以修复此错误,然后 NCP 会重新处理该策略。
如果某个网络策略仅指定了输出而未指定输入,则不会为输入流量创建任何防火墙规则。同样,如果某个网络策略仅指定了输入而未指定输出,则不会为输出流量创建任何防火墙规则。
当 NSX 应用程序 ID 防火墙规则应用于 NCP 创建的资源时,仅支持“分段”和“分段端口”组成员资格条件。请注意,仅当 NCP 配置为使用 NSX 策略 API 时,才支持应用程序 ID 防火墙规则功能。