凯发k8国际娱乐官网入口-k8凯发> 云容器引擎 cce> > > > > 网络策略(networkpolicy)
更新时间:2023-09-05 gmt 08:00

网络策略(networkpolicy)-凯发k8国际娱乐官网入口

networkpolicy是kubernetes设计用来限制pod访问的对象,相当于从应用的层面构建了一道防火墙,进一步保证了网络安全。networkpolicy支持的能力取决于集群的网络插件的能力。

默认情况下,如果命名空间中不存在任何策略,则所有进出该命名空间中的pod的流量都被允许。

networkpolicy的规则可以选择如下3种:

  • namespaceselector:根据命名空间的标签选择,具有该标签的命名空间都可以访问。
  • podselector:根据pod的标签选择,具有该标签的pod都可以访问。
  • ipblock:根据网络选择,网段内的ip地址都可以访问。(cce当前不支持此种方式)

约束与限制

  • 当前仅容器隧道网络模型的集群支持网络策略(networkpolicy)。网络策略可分为以下规则:
    • 入规则(ingress):所有版本均支持。
    • 出规则(egress):暂不支持设置。
  • 不支持对ipv6地址网络隔离。

使用ingress规则

  • 使用podselector设置访问范围
    apiversion: networking.k8s.io/v1
    kind: networkpolicy
    metadata:
      name: test-network-policy
      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

    示意图如下所示。

    图1 podselector
  • 使用namespaceselector设置访问范围
    apiversion: networking.k8s.io/v1
    kind: networkpolicy
    metadata:
      name: test-network-policy
    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 namespaceselector

在控制台创建网络策略

  1. 登录cce控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“策略”,在右侧选择“网络策略”页签,单击右上角“创建网络策略”
    • 策略名称:自定义输入networkpolicy名称。
    • 命名空间:选择网络策略所在命名空间。
    • 选择器:输入标签选择要关联的pod,然后单击添加。您也可以单击“引用负载标签”直接引用已有负载的标签。
    • 入方向规则:单击添加入方向规则,参数设置请参见表1

      表1 添加入方向规则

      参数

      参数说明

      协议端口

      请选择对应的协议类型和端口,目前支持tcp和udp协议。

      源对象命名空间

      选择允许哪个命名空间的对象访问。不填写表示和当前策略属于同一命名空间。

      源对象pod标签

      允许带有这个标签的pod访问,不填写表示命名空间下全部pod。

  3. 设置完成后,单击“确定”
分享:
网站地图