# 配置网络策略（NetworkPolicy）限制Pod访问的对象
网络策略（NetworkPolicy）是Kubernetes设计用来限制Pod访问的对象，相当于从应用的层面构建了一道防火墙，进一步保证了网络安全。NetworkPolicy支持的能力取决于集群的网络插件的能力。
默认情况下，如果命名空间中不存在任何策略，则所有进出该命名空间中的Pod的流量都被允许。
NetworkPolicy的Ingress/Egress对端选择方式有如下3种：
- namespaceSelector：根据命名空间的标签选择，具有该标签的命名空间都可以访问或被访问。
- podSelector：根据Pod的标签选择，具有该标签的Pod都可以访问或被访问。
- ipBlock：根据地址段选择，网段内的IP地址都可以访问或被访问。
  ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
  设置ipBlock时，您除了需要考虑业务的端口与网段，还需要额外考虑集群中某些重要组件必须的端口与网段，例如CoreDNS、NodeLocal DNSCache网段等，忽略这些网段可能影响业务稳定性。
  
#### 网络策略支持的集群对比
| 集群类型                            | CCE Standard集群                                                                                       | CCE Standard集群                                                                                                                                                                                              | CCE Turbo集群                                                                                                                                                                                                   |
| 网络模型                          | 容器隧道网络模型                                                                                                | VPC网络模型                                                                                                                                                                                                     | 云原生网络2.0模型                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| NetworkPolicy能力是否默认开启          | 默认开启                                                                                                   | 默认关闭，如需使用NetworkPolicy能力需在创建集群时开启DataPlane V2                                                                                                                                                              | 默认关闭，如需使用NetworkPolicy能力需在创建集群时开启DataPlane V2                                                                                                                                                                 |
| 数据面实现                          | openvswitch                                                                                              | eBPF                                                                                                                                                                                                        | eBPF                                                                                                                                                                                                          |
| 入规则支持的集群版本                      | 所有版本                                                                                                    | v1.27.16-r30、v1.28.15-r20、v1.29.13-r0、v1.30.10-r0、v1.31.6-r0及以上集群版本                                                                                                                                       | v1.34.3-r10及以上集群版本                                                                                                                                                                                             |
| 出规则支持的集群版本                       | v1.23及以上集群版本                                                                                              | v1.27.16-r30、v1.28.15-r20、v1.29.13-r0、v1.30.10-r0、v1.31.6-r0及以上集群版本                                                                                                                                       | v1.34.3-r10及以上集群版本                                                                                                                                                                                             |
| 入规则支持的选择方式                       | namespaceSelector podSelector                                             | namespaceSelector podSelector ipBlock                                                                                                            | namespaceSelector podSelector ipBlock                                                                                                            |
| 出规则支持的选择方式                       | namespaceSelector podSelector ipBlock       | namespaceSelector podSelector ipBlock                                                                                                            | namespaceSelector podSelector ipBlock                                                                                                            |
| Pod最多支持多少个NetworkPolicy对象同时控制 | 15个                                                                                                    | 无限制，尽量控制在100个以内                                                                                                                                                                                            | 无限制，尽量控制在100个以内                                                                                                                                                                                              |
| 支持的操作系统                       | EulerOS CentOS Huawei Cloud EulerOS 2.0 | 支持Huawei Cloud EulerOS 2.0操作系统。 v1.28.15-r70、v1.29.15-r30、v1.30.14-r30、v1.31.10-r30、v1.32.6-r30、v1.33.5-r20、v1.34.1-r0及以上版本的集群额外支持使用Ubuntu 22.04操作系统。 | 支持Huawei Cloud EulerOS 2.0操作系统。 v1.28.15-r70、v1.29.15-r30、v1.30.14-r30、v1.31.10-r30、v1.32.6-r30、v1.33.5-r20、v1.34.1-r0及以上版本的集群额外支持使用Ubuntu 22.04操作系统。 |
| 是否支持IPv6网络策略                  | 不支持                                                                                                     | 不支持                                                                                                                                                                                                       | 支持                                                                                                                                                                                                            |
| 是否支持安全容器                         | 不支持                                                                                                      | 支持                                                                                                                                                                                                           | 不支持                                                                                                                                                                                                            |
| ipBlock限制范围                     | 无约束                                                                                                      | 不支持配置容器网段、服务网段内的网段以及节点IP                                                                                                                                                                                  | 不支持配置容器网段、服务网段内的网段以及节点IP                                                                                                                                                                                       |
| 是否支持通过工作负载的标签限制ClusterIP的访问    | 不支持                                                                                                    | 支持                                                                                                                                                                                                          | 支持                                                                                                                                                                                                             |
| 是否支持限制100.125.0.0/16内部云服务网段     | 支持                                                                                                     | 支持                                                                                                                                                                                                          | 支持                                                                                                                                                                                                                |
| 是否支持SCTP协议                    | 不支持                                                                                                   | 支持                                                                                                                                                                                                           | 支持                                                                                                                                                                                                              |
| 总是放通节点访问该节点上的Pod                | 支持                                                                                                      | 支持                                                                                                                                                                                                           | 支持                                                                                                                                                                                                              |
| 是否支持NetworkPolicy中EndPort配置   | 不支持                                                                                                      | 支持                                                                                                                                                                                                        | 支持                                                                                                                                                                                                               |
   
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
- 容器隧道网络的CCE Standard集群中，通过原地升级到支持Egress的集群版本，由于不会升级节点操作系统，会导致无法使用Egress，此种情况下请重置节点。
- 容器隧道网络集群开启NetworkPolicy后，Pod访问服务网段地址时，会在IP数据报文的可选字段里填充Pod源IP，以便目的端Pod上的NetworkPolicy规则可以基于Pod源IP进行网络策略限制。
 
#### 使用Ingress规则
#### 场景一：限制Pod只能被带有特定标签的Pod访问
图1podSelector   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002666495530.png "点击放大")
假设目标Pod具有role=db标签，该Pod只允许带有role=frontend标签的Pod访问其6379端口。设置该网络策略的具体操作步骤如下：
- [通过控制台创建]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
  
  2. 在左侧导航栏中选择"策略"，在右侧选择"网络策略"页签，单击右上角"创建网络策略"。
  
  3. 填写网络策略参数。 
     表1创建网络策略 
     | 参数    | 参数说明                                                                                                                                                                                       | 示例                                      |
     |:---|:---|:---|
     | 策略名称 | 自定义输入NetworkPolicy名称。                                                                                                                                                                       | access-ingress1                             |
     | 命名空间 | 选择网络策略所在命名空间。                                                                                                                                                                                | default                                  |
     | 选择器   | 输入标签选择要关联的Pod，然后单击"确认添加"，不填写表示关联命名空间下全部负载。您也可以单击"引用负载标签"直接引用已有负载的标签。                                                                                                                         | 键：role 值：db  |
     | 入方向规则 | 开启"控制入方向流量"后，通过入方向规则控制访问选择器所关联负载Pod的流量。若不开启，则不对入方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002666865296.png "点击放大")添加入方向规则。  | 请参见[表2] |
     | 出方向规则   | 开启"控制出方向流量"后，通过出方向规则控制选择器所关联负载Pod访问外部的流量。若不开启，则不对出方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002696625117.png "点击放大")添加出方向规则。 | 本示例不涉及                                   |
        
      表2添加入方向规则 
     | 参数        | 参数说明                                                                                                                                                                                                                                                                                    | 示例                                            |
     |:---|:---|:---|
     | 协议端口      | 请选择对应的协议类型和端口，目前支持选择全部协议、TCP和UDP协议，不填写端口时默认为全部端口。                                                                                                                                                                                                                                       | 协议：TCP 端口：6379 |
     | 源网段      | v1.27.16-r10、v1.28.15-r0、v1.29.10-r0、v1.30.6-r0及以上版本的集群开启DataPlane V2时支持设置源网段。 允许转发来自指定网段内（可指定多个例外网段）的流量。指定网段和例外网段用竖线（\|）分隔，多个例外网段用逗号（,）分隔。例如 172.17.0.0/16\|172.17.1.0/24,172.17.2.0/24 表示允许来自172.17.0.0/16网段的流量访问，其中 172.17.1.0/24 和 172.17.2.0/24 两个网段例外。 | 本示例不涉及                                         |
     | 源对象命名空间   | 选择允许哪个命名空间的对象访问。不填写表示和当前策略属于同一命名空间。                                                                                                                                                                                                                                                       | default                                        |
     | 源对象Pod标签 | 输入Pod的标签来选择允许访问的Pod，然后单击"确认添加"，不填写表示命名空间下全部Pod。                                                                                                                                                                                                                                           | 键：role 值：frontend |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002727738762.png "点击放大")
     
     
     
  
  4. 设置完成后，单击"确定"。
   
- [通过YAML创建]
  1. 创建名为access-ingress1.yaml文件。 
     ```
     vim access-ingress1.yaml
     ```
     以下为YAML文件内容：
     ```
     apiVersion: networking.k8s.io/v1
     kind: NetworkPolicy
     metadata:
       name: access-ingress1
       namespace: default
     spec:
       podSelector:                  # 规则对具有role=db标签的Pod生效
         matchLabels:
           role: db
       ingress:                      # 表示入规则
       - from:
         - podSelector:              # 只允许具有role=frontend标签的Pod访问
             matchLabels:
               role: frontend
         ports:                      # 只能使用TCP协议访问6379端口
         - protocol: TCP
           port: 6379
     ```
     
     
  
  2. 执行以下命令，根据上述的access-ingress1.yaml文件创建网络策略。 
     ```
     kubectl apply -f access-ingress1.yaml
     ```
     预期输出：
     ```
     networkpolicy.networking.k8s.io/access-ingress1 created
     ```
     
     
   
#### 场景二：限制Pod只能被指定命名空间下的Pod访问
图2namespaceSelector   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002696175449.png "点击放大")
目标Pod具有role=db标签，该Pod只允许project=myproject标签的命名空间中的Pod访问其6379端口。设置该网络策略的具体操作步骤如下：
- [通过控制台创建]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
  
  2. 在左侧导航栏中选择"策略"，在右侧选择"网络策略"页签，单击右上角"创建网络策略"。
  
  3. 填写网络策略参数。 
     表3创建网络策略 
     | 参数  | 参数说明                                                                                                                                                                                                                   | 示例                                           |
     |:---|:---|:---|
     | 策略名称  | 自定义输入NetworkPolicy名称。                                                                                                                                                                                               | access-ingress2                           |
     | 命名空间 | 选择网络策略所在命名空间。                                                                                                                                                                                                       | default                                      |
     | 选择器     | 输入标签选择要关联的Pod，然后单击"确认添加"，不填写表示关联命名空间下全部负载。您也可以单击"引用负载标签"直接引用已有负载的标签。                                                                                                                                                | 键：role 值：db |
     | 入方向规则 | 开启"控制入方向流量"后，通过入方向规则控制访问选择器所关联负载Pod的流量。若不开启，则不对入方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002666865296.png "点击放大")添加入方向规则。  | 请参见[表4]  |
     | 出方向规则 | 开启"控制出方向流量"后，通过出方向规则控制选择器所关联负载Pod访问外部的流量。若不开启，则不对出方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002696625117.png "点击放大")添加出方向规则。 | 本示例不涉及                                     |
        
      表4添加入方向规则 
     | 参数        | 参数说明                                                                                                                                                                                                                                                                                         | 示例                                         |
     |:---|:---|:---|
     | 协议端口      | 请选择对应的协议类型和端口，目前支持选择全部协议、TCP和UDP协议，不填写端口时默认为全部端口。                                                                                                                                                                                                                              | 协议：TCP 端口：6379 |
     | 源网段         | v1.27.16-r10、v1.28.15-r0、v1.29.10-r0、v1.30.6-r0及以上版本的集群开启DataPlane V2时支持设置源网段。 允许转发来自指定网段内（可指定多个例外网段）的流量。指定网段和例外网段用竖线（\|）分隔，多个例外网段用逗号（,）分隔。例如 172.17.0.0/16\|172.17.1.0/24,172.17.2.0/24 表示允许来自172.17.0.0/16网段的流量访问，其中 172.17.1.0/24 和 172.17.2.0/24 两个网段例外。 | 本示例不涉及                                      |
     | 源对象命名空间    | 选择允许哪个命名空间的对象访问。不填写表示和当前策略属于同一命名空间。                                                                                                                                                                                                                                                         | myproject                                   |
     | 源对象Pod标签 | 输入Pod的标签来选择允许访问的Pod，然后单击"确认添加"，不填写表示命名空间下全部Pod。                                                                                                                                                                                                                                            | 本示例不涉及                                       |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002727580414.png "点击放大")
     
     
     
  
  4. 设置完成后，单击"确定"。
   
- [通过YAML创建]
  1. 创建名为access-ingress2.yaml文件。 
     ```
     vim access-ingress2.yaml
     ```
     以下为YAML文件内容：
     ```
     apiVersion: networking.k8s.io/v1
     kind: NetworkPolicy
     metadata:
       name: access-ingress2
     spec:
       podSelector:                  # 规则对具有role=db标签的Pod生效
         matchLabels:
           role: db
       ingress:                      # 表示入规则
       - from:
         - namespaceSelector:        # 只允许具有project=myproject标签的命名空间中的Pod访问
             matchLabels:
               project: myproject
         ports:                      # 只能使用TCP协议访问6379端口
         - protocol: TCP
           port: 6379
     ```
     
     
  
  2. 执行以下命令，根据上述的access-ingress2.yaml文件创建网络策略。 
     ```
     kubectl apply -f access-ingress2.yaml
     ```
     预期输出：
     ```
     networkpolicy.networking.k8s.io/access-ingress2 created
     ```
     
     
   
#### 场景三：限制Pod只能被指定命名空间下带有特定标签的Pod访问
图3podSelector和namespaceSelector结合使用   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002666335630.png "点击放大")
目标Pod具有role=db标签，该Pod只允许project=myproject标签的命名空间中带有role=frontend标签的Pod访问其6379端口。设置该网络策略的具体操作步骤如下：
- [通过控制台创建]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
  
  2. 在左侧导航栏中选择"策略"，在右侧选择"网络策略"页签，单击右上角"创建网络策略"。
  
  3. 填写网络策略参数。 
     表5创建网络策略 
     | 参数     | 参数说明                                                                                                                                                                                                                      | 示例                                          |
     |:---|:---|:---|
     | 策略名称  | 自定义输入NetworkPolicy名称。                                                                                                                                                                                                    | access-ingress3                            |
     | 命名空间 | 选择网络策略所在命名空间。                                                                                                                                                                                                            | default                                    |
     | 选择器  | 输入标签选择要关联的Pod，然后单击"确认添加"，不填写表示关联命名空间下全部负载。您也可以单击"引用负载标签"直接引用已有负载的标签。                                                                                                                                                     | 键：role 值：db   |
     | 入方向规则 | 开启"控制入方向流量"后，通过入方向规则控制访问选择器所关联负载Pod的流量。若不开启，则不对入方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002666865296.png "点击放大")添加入方向规则。  | 参数设置请参见[表6] |
     | 出方向规则   | 开启"控制出方向流量"后，通过出方向规则控制选择器所关联负载Pod访问外部的流量。若不开启，则不对出方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002696625117.png "点击放大")添加出方向规则。 | 本示例不涉及                                    |
        
      表6添加入方向规则 
     | 参数       | 参数说明                                                                                                                                                                                                                                                                                         | 示例                                              |
     |:---|:---|:---|
     | 协议端口  | 请选择对应的协议类型和端口，目前支持选择全部协议、TCP和UDP协议，不填写端口时默认为全部端口。                                                                                                                                                                                                                            | 协议：TCP 端口：6379    |
     | 源网段      | v1.27.16-r10、v1.28.15-r0、v1.29.10-r0、v1.30.6-r0及以上版本的集群开启DataPlane V2时支持设置源网段。 允许转发来自指定网段内（可指定多个例外网段）的流量。指定网段和例外网段用竖线（\|）分隔，多个例外网段用逗号（,）分隔。例如 172.17.0.0/16\|172.17.1.0/24,172.17.2.0/24 表示允许来自172.17.0.0/16网段的流量访问，其中 172.17.1.0/24 和 172.17.2.0/24 两个网段例外。 | 本示例不涉及                                         |
     | 源对象命名空间  | 选择允许哪个命名空间的对象访问。不填写表示和当前策略属于同一命名空间。                                                                                                                                                                                                                                                         | myproject                                     |
     | 源对象Pod标签 | 输入Pod的标签来选择允许访问的Pod，然后单击"确认添加"，不填写表示命名空间下全部Pod。                                                                                                                                                                                                                                              | 键：role 值：frontend |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002757301147.png "点击放大")
     
     
     
  
  4. 设置完成后，单击"确定"。
   
- [通过YAML创建]
  1. 创建名为access-ingress3.yaml文件。 
     ```
     vim access-ingress3.yaml
     ```
     以下为YAML文件内容：
     ```
     apiVersion: networking.k8s.io/v1
     kind: NetworkPolicy
     metadata:
       name: access-ingress3
     spec:
       podSelector:                  # 规则对具有role=db标签的Pod生效
         matchLabels:
           role: db
       ingress:                      # 表示入规则
       - from:
         - namespaceSelector:        # 只允许具有project=myproject标签的命名空间中的Pod访问
             matchLabels:
               project: myproject
           podSelector:              # 只允许具有role=frontend标签的Pod访问
             matchLabels:
               role: frontend
         ports:                      # 只能使用TCP协议访问6379端口
         - protocol: TCP
           port: 6379
     ```
     
     
  
  2. 执行以下命令，根据上述的access-ingress3.yaml文件创建网络策略。 
     ```
     kubectl apply -f access-ingress3.yaml
     ```
     预期输出：
     ```
     networkpolicy.networking.k8s.io/access-ingress3 created
     ```
     
     
   
#### 使用Egress规则
#### 场景一：限制Pod只能访问指定地址
图4ipBlock   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002666495532.png "点击放大")
目标Pod具有role=db标签，该Pod只允许访问172.16.0.0/16网段，但不允许访问该网段中的172.16.0.40/32地址。设置该网络策略的具体操作步骤如下：
- [通过控制台创建]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
  
  2. 在左侧导航栏中选择"策略"，在右侧选择"网络策略"页签，单击右上角"创建网络策略"。
  
  3. 填写网络策略参数。 
     表7创建网络策略 
     | 参数     | 参数说明                                                                                                                                                                                                                     | 示例                                         |
     |:---|:---|:---|
     | 策略名称 | 自定义输入NetworkPolicy名称。                                                                                                                                                                                                     | access-ingress3                          |
     | 命名空间 | 选择网络策略所在命名空间。                                                                                                                                                                                                             | default                                    |
     | 选择器   | 输入标签选择要关联的Pod，然后单击"确认添加"，不填写表示关联命名空间下全部负载。您也可以单击"引用负载标签"直接引用已有负载的标签。                                                                                                                                                      | 键：role 值：db  |
     | 入方向规则   | 开启"控制入方向流量"后，通过入方向规则控制访问选择器所关联负载Pod的流量。若不开启，则不对入方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002666865296.png "点击放大")添加入方向规则。  | 本示例不涉及                                     |
     | 出方向规则  | 开启"控制出方向流量"后，通过出方向规则控制选择器所关联负载Pod访问外部的流量。若不开启，则不对出方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002696625117.png "点击放大")添加出方向规则。 | 请参见[表8] |
        
      表8添加出方向规则 
     | 参数      | 参数说明                                                                                                                                                                        | 示例                              |
     |:---|:---|:---|
     | 协议端口    | 请选择对应的协议类型和端口，目前支持选择全部协议、TCP和UDP协议，不填写端口时默认为全部端口。                                                                                                             | 本示例不涉及                          |
     | 目标网段   | 允许将流量转发至指定的一个网段内（可指定多个例外网段）。指定网段和例外网段用竖线（\|）分隔，多个例外网段用逗号（,）分隔。例如 172.17.0.0/16\|172.17.1.0/24,172.17.2.0/24 表示允许访问 172.17.0.0/16 网段，其中 172.17.1.0/24 和 172.17.2.0/24 两个网段例外。 | 172.16.0.0/16\|172.16.0.40/32 |
     | 目的对象命名空间 | 选择允许访问哪个命名空间中的对象。不填写表示和当前策略属于同一命名空间。                                                                                                                                        | 本示例不涉及                           |
     | 目的对象Pod标签 | 允许访问携带此标签的Pod，不填写表示命名空间下全部Pod。                                                                                                                                                | 本示例不涉及                         |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002757222701.png "点击放大")
     
     
     
     
  
  4. 设置完成后，单击"确定"。
   
- [通过YAML创建]
  1. 创建名为access-egress1.yaml文件。
     ```
     vim access-egress1.yaml
     ```
     以下为YAML文件内容：
     ```
     apiVersion: networking.k8s.io/v1
     kind: NetworkPolicy
     metadata:
       name: access-egress1
       namespace: default
     spec:
       policyTypes:                  # 使用Egress必须指定policyType
         - Egress
       podSelector:                  # 规则对具有role=db标签的Pod生效
         matchLabels:
           role: db
       egress:                       # 表示出规则
       - to:
         - ipBlock:
             cidr: 172.16.0.0/16    # 允许在出方向访问此网段
             except:
             - 172.16.0.40/32        # 不允许在出方向访问此网段，except网段需在cidr网段内
     ```
     
  
  2. 执行以下命令，根据上述的access-egress1.yaml文件创建网络策略。
     ```
     kubectl apply -f access-egress1.yaml
     ```
     预期输出：
     ```
     networkpolicy.networking.k8s.io/access-egress1 created
     ```
     
   
#### 场景二：限制Pod只能被带有特定标签的Pod访问，且只能访问指定Pod
图5同时使用Ingress和Egress   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002696175451.png "点击放大")
目标Pod具有role=db标签，该Pod只允许带有role=frontend标签的Pod访问其6379端口，且该Pod只能访问带有role=web标签的Pod。网络策略中的Ingress和Egress可以定义在同一个规则中，具体操作步骤如下：
- [通过控制台创建]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
  
  2. 在左侧导航栏中选择"策略"，在右侧选择"网络策略"页签，单击右上角"创建网络策略"。
  
  3. 填写网络策略参数。 
     表9创建网络策略 
     | 参数       | 参数说明                                                                                                                                                                                                                    | 示例                                          |
     |:---|:---|:---|
     | 策略名称  | 自定义输入NetworkPolicy名称。                                                                                                                                                                                                     | access-ingress3                            |
     | 命名空间  | 选择网络策略所在命名空间。                                                                                                                                                                                                             | default                                       |
     | 选择器      | 输入标签选择要关联的Pod，然后单击"确认添加"，不填写表示关联命名空间下全部负载。您也可以单击"引用负载标签"直接引用已有负载的标签。                                                                                                                                                   | 键：role 值：db      |
     | 入方向规则  | 开启"控制入方向流量"后，通过入方向规则控制访问选择器所关联负载Pod的流量。若不开启，则不对入方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002666865296.png "点击放大")添加入方向规则。  | 请参见[表10]  |
     | 出方向规则 | 开启"控制出方向流量"后，通过出方向规则控制选择器所关联负载Pod访问外部的流量。若不开启，则不对出方向流量进行控制。 单击![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002696625117.png "点击放大")添加出方向规则。 | 请参见[表11] |
        
      表10添加入方向规则 
     | 参数       | 参数说明                                                                                                                                                                                                                                                                                    | 示例                                              |
     |:---|:---|:---|
     | 协议端口    | 请选择对应的协议类型和端口，目前支持选择全部协议、TCP和UDP协议，不填写端口时默认为全部端口。                                                                                                                                                                                                                        | 协议：TCP 端口：6379     |
     | 源网段        | v1.27.16-r10、v1.28.15-r0、v1.29.10-r0、v1.30.6-r0及以上版本的集群开启DataPlane V2时支持设置源网段。 允许转发来自指定网段内（可指定多个例外网段）的流量。指定网段和例外网段用竖线（\|）分隔，多个例外网段用逗号（,）分隔。例如 172.17.0.0/16\|172.17.1.0/24,172.17.2.0/24 表示允许来自172.17.0.0/16网段的流量访问，其中 172.17.1.0/24 和 172.17.2.0/24 两个网段例外。 | 本示例不涉及                                           |
     | 源对象命名空间  | 选择允许哪个命名空间的对象访问。不填写表示和当前策略属于同一命名空间。                                                                                                                                                                                                                                                     | default                                         |
     | 源对象Pod标签 | 输入Pod的标签来选择允许访问的Pod，然后单击"确认添加"，不填写表示命名空间下全部Pod。                                                                                                                                                                                                                                          | 键：role 值：frontend |
        
      表11添加出方向规则 
     | 参数       | 参数说明                                                                                                                                                                          | 示例                                        |
     |:---|:---|:---|
     | 协议端口    | 请选择对应的协议类型和端口，目前支持TCP和UDP协议。不填写表示不限制。                                                                                                                                        | 本示例不涉及                                     |
     | 目标网段      | 允许将流量转发至指定的一个网段内（可指定多个例外网段）。指定网段和例外网段用竖线（\|）分隔，多个例外网段用逗号（,）分隔。例如 172.17.0.0/16\|172.17.1.0/24,172.17.2.0/24 表示允许访问 172.17.0.0/16 网段，其中 172.17.1.0/24 和 172.17.2.0/24 两个网段例外。 | 本示例不涉及                                    |
     | 目的对象命名空间 | 选择允许访问哪个命名空间中的对象。不填写表示和当前策略属于同一命名空间。                                                                                                                                       | default                                    |
     | 目的对象Pod标签  | 允许访问携带此标签的Pod，不填写表示命名空间下全部Pod。                                                                                                                                              | 键：role 值：web |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002757223173.png "点击放大")
     
     
     
  
  4. 设置完成后，单击"确定"。
   
- [通过YAML创建]
  1. 创建名为access-egress2.yaml文件。
     ```
     vim access-egress2.yaml
     ```
     以下为YAML文件内容：
     ```
     apiVersion: networking.k8s.io/v1
     kind: NetworkPolicy
     metadata:
       name: access-egress2
       namespace: default
     spec:
       policyTypes:
       - Ingress
       - Egress
       podSelector:                  # 规则对具有role=db标签的Pod生效
         matchLabels:
           role: db
       ingress:                      # 表示入规则
       - from:
         - podSelector:              # 只允许具有role=frontend标签的Pod访问
             matchLabels:
               role: frontend
         ports:                      # 只能使用TCP协议访问6379端口
         - protocol: TCP
           port: 6379
       egress:                       # 表示出规则
       - to:
         - podSelector:              # 只允许访问具有role=web标签的Pod
             matchLabels:
               role: web
     ```
     
  
  2. 执行以下命令，根据上述的access-egress2.yaml文件创建网络策略。
     ```
     kubectl apply -f access-egress2.yaml
     ```
     预期输出：
     ```
     networkpolicy.networking.k8s.io/access-egress2 created
     ```
     
   
