36.6. Network Policy

作为具有 admin 角色的用户,您可以为 netobserv 命名空间创建网络策略。

36.6.1. 为 Network Observability 创建网络策略

您可能需要创建一个网络策略来保护到 netobserv 命名空间的入口流量。在 Web 控制台中,您可以使用表单视图创建网络策略。

流程

  1. 进入到 NetworkingNetworkPolicies
  2. Project 下拉菜单中选择 netobserv 项目。
  3. 为策略命名。在本例中,策略名为 allow-ingress
  4. Add ingress rule 三次来创建三个入站规则。
  5. 指定以下内容:

    1. 对第一个 Ingress 规则 设置以下规格:

      1. Add allowed source 下拉菜单中选择 Allow pods
    2. 为第二个 Ingress 规则设置以下规格 :

      1. Add allowed source 下拉菜单中选择 Allow pods
      2. + Add namespace selector
      3. 添加标签 kubernetes.io/metadata.name,以及选择器 openshift-console
    3. 为第三个 Ingress 规则设置以下规格 :

      1. Add allowed source 下拉菜单中选择 Allow pods
      2. + Add namespace selector
      3. 添加标签 kubernetes.io/metadata.name,和选择器 openshift-monitoring

验证

  1. 进入到 ObserveNetwork Traffic
  2. 查看 Traffic Flows 选项卡,或任何标签页,以验证是否显示数据。
  3. 进入到 ObserveDashboards。在 NetObserv/Health 选择中,验证流是否嵌套并发送到 Loki,这在第一个图形中表示。

36.6.2. 网络策略示例

以下注解了 netobserv 命名空间的 NetworkPolicy 对象示例:

网络策略示例

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-ingress
  namespace: netobserv
spec:
  podSelector: {}            1
  ingress:
    - from:
        - podSelector: {}    2
          namespaceSelector: 3
            matchLabels:
              kubernetes.io/metadata.name: openshift-console
        - podSelector: {}
          namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: openshift-monitoring
  policyTypes:
    - Ingress
status: {}

1
描述策略应用到的 pod 的选择器。策略对象只能选择定义 NetworkPolicy 对象的项目中的 pod。在本文档中,它是安装 Network Observability Operator 的项目,即 netobserv 项目。
2
与策略对象允许从中入口流量的 pod 匹配的选择器。默认为选择器与 NetworkPolicy 相同的命名空间中的 pod 匹配。
3
当指定 namespaceSelector 时,选择器与指定命名空间中的 pod 匹配。