6.2. 创建网络策略
作为集群管理员,您可以为命名空间创建网络策略。
6.2.1. 创建 NetworkPolicy 对象
要定义细致的规则来描述集群中项目允许的 Ingress 网络流量,您可以创建 NetworkPolicy 对象。
先决条件
-
集群使用支持 NetworkPolicy 对象的默认 CNI 网络供应商,如设置了
mode: NetworkPolicy
的 OpenShift SDN 网络供应商。此模式是 OpenShift SDN 的默认模式。 -
已安装 OpenShift CLI(
oc
)。 -
使用具有
cluster-admin
权限的用户登陆到集群。
流程
创建策略规则:
-
创建一个
<policy-name>.yaml
文件,其中<policy-name>
描述策略规则。 在刚才创建的文件中,定义一个策略对象,如下例所示:
kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: <policy-name> 1 spec: podSelector: ingress: []
- 1
- 为策略对象指定一个名称。
-
创建一个
运行以下命令来创建策略对象:
$ oc create -f <policy-name>.yaml -n <project>
在以下示例中,在名为
project1
的项目中创建一个新 NetworkPolicy 对象:$ oc create -f default-deny.yaml -n project1
输出示例
networkpolicy "default-deny" created
6.2.2. 示例 NetworkPolicy 对象
下文解释了示例 NetworkPolicy 对象:
kind: NetworkPolicy apiVersion: extensions/v1beta1 metadata: name: allow-27107 1 spec: podSelector: 2 matchLabels: app: mongodb ingress: - from: - podSelector: 3 matchLabels: app: app ports: 4 - protocol: TCP port: 27017