×

作为具有 `admin` 角色的用户,您可以编辑命名空间中现有的网络策略。

编辑网络策略

您可以编辑命名空间中的网络策略。

如果您以具有 `cluster-admin` 角色的用户身份登录,则可以编辑集群中任何命名空间中的网络策略。

先决条件
  • 您的集群使用支持 `NetworkPolicy` 对象的网络插件,例如 OVN-Kubernetes 网络插件,并设置了 `mode: NetworkPolicy`。

  • 您已安装 OpenShift CLI ( `oc` )。

  • 您已使用具有 `admin` 权限的用户登录到集群。

  • 您正在网络策略所在的命名空间中工作。

步骤
  1. 可选:要列出命名空间中的网络策略对象,请输入以下命令

    $ oc get networkpolicy

    其中

    <namespace>

    可选:如果对象在与当前命名空间不同的命名空间中定义,则指定命名空间。

  2. 编辑网络策略对象。

    • 如果您已将网络策略定义保存到文件中,请编辑该文件并进行必要的更改,然后输入以下命令。

      $ oc apply -n <namespace> -f <policy_file>.yaml

      其中

      <namespace>

      可选:如果对象在与当前命名空间不同的命名空间中定义,则指定命名空间。

      <policy_file>

      指定包含网络策略的文件名。

    • 如果您需要直接更新网络策略对象,请输入以下命令

      $ oc edit networkpolicy <policy_name> -n <namespace>

      其中

      <policy_name>

      指定网络策略的名称。

      <namespace>

      可选:如果对象在与当前命名空间不同的命名空间中定义,则指定命名空间。

  3. 确认网络策略对象已更新。

    $ oc describe networkpolicy <policy_name> -n <namespace>

    其中

    <policy_name>

    指定网络策略的名称。

    <namespace>

    可选:如果对象在与当前命名空间不同的命名空间中定义,则指定命名空间。

如果您使用 `cluster-admin` 权限登录到 Web 控制台,则可以选择直接在 YAML 中或通过 Web 控制台中的策略通过“操作”菜单编辑集群中任何命名空间中的网络策略。

NetworkPolicy 对象示例

以下注释了一个 NetworkPolicy 对象示例

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-27107 (1)
spec:
  podSelector: (2)
    matchLabels:
      app: mongodb
  ingress:
  - from:
    - podSelector: (3)
        matchLabels:
          app: app
    ports: (4)
    - protocol: TCP
      port: 27017
1 NetworkPolicy 对象的名称。
2 一个选择器,用于描述策略适用的 Pod。策略对象只能选择定义 NetworkPolicy 对象的项目中的 Pod。
3 一个选择器,用于匹配策略对象允许其进入流量的 Pod。选择器与 NetworkPolicy 相同命名空间中的 Pod 匹配。
4 一个或多个用于接受流量的目标端口列表。

其他资源