20.4. 编辑网络策略
作为具有 admin
角色的用户,您可以编辑命名空间的现有网络策略。
20.4.1. 编辑网络策略
您可以编辑命名空间中的网络策略。
注意
如果使用具有 cluster-admin
角色的用户登录,则可以在集群中的任何命名空间中编辑网络策略。
先决条件
-
集群使用支持
NetworkPolicy
对象的网络插件,如 OVN-Kubernetes 网络插件或设置了mode: NetworkPolicy
的 OpenShift SDN 网络插件。此模式是 OpenShift SDN 的默认模式。 -
已安装 OpenShift CLI(
oc
)。 -
您可以使用具有
admin
权限的用户登陆到集群。 - 您在网络策略所在的命名空间中。
流程
可选: 要列出一个命名空间中的网络策略对象,请输入以下命令:
$ oc get networkpolicy
其中:
<namespace>
- 可选: 如果对象在与当前命名空间不同的命名空间中定义,使用它来指定命名空间。
编辑网络策略对象。
如果您在文件中保存了网络策略定义,请编辑该文件并进行必要的更改,然后输入以下命令。
$ oc apply -n <namespace> -f <policy_file>.yaml
其中:
<namespace>
- 可选: 如果对象在与当前命名空间不同的命名空间中定义,使用它来指定命名空间。
<policy_file>
- 指定包含网络策略的文件的名称。
如果您需要直接更新网络策略对象,请输入以下命令:
$ oc edit networkpolicy <policy_name> -n <namespace>
其中:
<policy_name>
- 指定网络策略的名称。
<namespace>
- 可选: 如果对象在与当前命名空间不同的命名空间中定义,使用它来指定命名空间。
确认网络策略对象已更新。
$ oc describe networkpolicy <policy_name> -n <namespace>
其中:
<policy_name>
- 指定网络策略的名称。
<namespace>
- 可选: 如果对象在与当前命名空间不同的命名空间中定义,使用它来指定命名空间。
注意
如果您使用 cluster-admin
权限登录到 web 控制台,您可以选择在集群中的任何命名空间中以 YAML 或通过 Actions 菜单从 web 控制台中的策略编辑网络策略。
20.4.2. 示例 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