创建网络策略

INFO

该平台现在提供两种不同的网络策略用户界面。旧版本出于兼容性原因仍在维护,而新版本则更灵活,并提供原生的 YAML 编辑器。我们建议使用新版本。

请联系平台管理员启用 network-policy-next 功能开关以访问新用户界面。

NetworkPolicy 是一个命名空间范围的 Kubernetes 资源,由 CNI 插件实现。 通过网络策略,您可以控制 Pod 的网络流量,实现网络隔离并降低攻击风险。

默认情况下,所有 Pod 可以自由通信,允许来自任何源的入站和出站流量。 当应用网络策略时,目标 Pod 仅接受与规范匹配的流量。

WARNING

网络策略仅适用于容器流量。它们不影响以 hostNetwork 模式运行的 Pod。

示例 NetworkPolicy:

# example-network-policy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: example
  namespace: demo-1
  annotations:
    cpaas.io/display-name: test
spec:
  podSelector:
    matchLabels:
      pod-template-hash: 55c84b59bb
  ingress:
    - ports:
        - protocol: TCP
          port: 8989
      from:
        - podSelector:
            matchLabels:
              kubevirt.io/vm: test
  egress:
    - ports:
        - protocol: TCP
          port: 80
      to:
        - ipBlock:
            cidr: 192.168.66.221/23
            except: []
  policyTypes:
    - Ingress
    - Egress
  1. fromto 对等体支持 namespaceSelectorpodSelectoripBlock

通过 Web 控制台创建 NetworkPolicy

  1. 进入 容器平台

  2. 在左侧导航栏中,点击 网络 > 网络策略

  3. 点击 创建网络策略

  4. 根据以下说明完成相关配置。

区域参数描述
目标 PodPod 选择器以键值形式输入目标 Pods 的标签;如果未设置,将应用于当前命名空间中的所有 Pods。
当前策略影响的目标 Pods 预览点击 预览 查看受此网络策略影响的目标 Pods。
入站阻止所有入站流量阻止所有入站流量到目标 Pod。

注意:
  • 如果在 YAML 中将入站添加到 spec.policyTypes 字段而未配置特定规则,则在切换回表单时,阻止所有入站流量 选项将自动被选中。
  • 如果在 YAML 中同时删除 spec.ingressspec.egressspec.policyTypes 字段,则在切换回表单时,阻止所有入站流量 选项将自动被选中。
规则

描述: 如果在规则中添加多个源,则它们之间存在逻辑 关系。
当前命名空间中的 Pods匹配当前命名空间中具有指定标签的 Pods;只有匹配的 Pods 可以访问目标 Pod。您可以点击 预览 查看受当前规则影响的 Pods。如果未配置此项,默认情况下,当前命名空间中的所有 Pods 都可以访问目标 Pod。
当前集群中的 Pods匹配集群中具有指定标签的命名空间或 Pods;只有匹配的 Pods 可以访问目标 Pod。您可以点击 预览 查看受当前规则影响的 Pods。
  • 如果同时配置了命名空间和 Pod 选择器,则将取两者的交集,这意味着将从指定命名空间中选择具有指定标签的 Pods。
  • 如果未配置此项,默认情况下,集群中所有命名空间的所有 Pods 都可以访问目标 Pod。
IP 范围输入可以访问目标 Pod 的 CIDR,并可以排除不允许访问目标 Pod 的 CIDR 范围。如果未配置此项,任何流量都可以访问目标 Pod。

描述: 您可以以 exampleip/32 的形式添加排除项,以排除单个 IP 地址。
端口匹配指定协议和端口的流量;可以添加 Pods 上的数字端口或端口名称。如果未配置此项,将匹配所有端口。
出站阻止所有出站流量阻止所有出站流量到目标 Pod。

注意:
  • 如果在 YAML 中将出站添加到 spec.policyTypes 字段而未配置特定规则,则在切换回表单时,阻止所有出站流量 选项将自动被选中。
其他参数入站 参数类似,此处不再详细说明。
  1. 点击 创建

通过 CLI 创建 NetworkPolicy

kubectl apply -f example-network-policy.yaml

参考

如需更多详细信息,请查看官方文档中的 网络策略