$ oc get networkpolicy
作为具有 `admin` 角色的用户,您可以编辑命名空间中现有的网络策略。
您可以编辑命名空间中的网络策略。
如果您以具有 `cluster-admin` 角色的用户身份登录,则可以编辑集群中任何命名空间中的网络策略。 |
您的集群使用支持 `NetworkPolicy` 对象的网络插件,例如 OVN-Kubernetes 网络插件,并设置了 `mode: NetworkPolicy`。
您已安装 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 中或通过 Web 控制台中的策略通过“操作”菜单编辑集群中任何命名空间中的网络策略。 |
以下注释了一个 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 | 一个或多个用于接受流量的目标端口列表。 |