tencent cloud

文档反馈

策略配置

最后更新时间:2024-01-23 15:44:44
    容器网络策略提供基于 K8s 原生 Networkpolicy 的集群容器间网络策略下发和管理能力,通过对集群内的防护对象进行定义,设置防护对象的出站和入站规则实现容器间网络访问控制。本文档将指导您如何配置和管理容器网络策略,以及实施容器间网络隔离。

    限制条件

    目前支持容器网络策略的集群范围包括:TKE 独立集群、TKE 托管集群、自建 K8s 集群。
    1. 容器网络策略依赖集群部署网络组件,目前已支持 kube-router 网络组件类型。
    TKE集群使用容器网络策略需确保集群已安装 NetworkPolicy 组件。NetworkPolicy 组件说明可参见 容器服务-Network Policy 说明
    
    
    自建 K8s 集群安装 kube-router 网络组件可参见 User Guide - Kube-router
    使用容器网络策略可能造成集群性能损耗,请详细评估集群规模和性能损耗后使用。以部署 kube-router 组件开启网络策略为例,Pod 数量从2000增长到8000,部署网络策略时集群性能下降约10% - 20%,详情请参见 使用 Network Policy 进行网络访问控制

    管理集群网络策略

    1. 登录 容器安全服务控制台,在左侧导航中,选择策略管理 > 容器网络策略
    2. 在容器网络策略页面,可查看集群网络组件类型、集群地域和集群的已启用策略数和总策略数等相关信息。
    
    
    3. 选择目标集群,单击策略管理,进入集群策略详情页面,支持对集群网络策略进行添加、编辑、删除以及自动发现策略置入等操作。
    注意:
    当前仅支持 Kube-Router 网络组件。
    容器网络策略依赖集群部署网络组件,不支持的网络组件类型无法进入集群策略管理。
    

    创建集群网络策略

    1. 在集群策略详情页面,单击添加策略
    2. 在添加策略对话框中,填写策略名称和策略描述,选择视图模式或表单模式进入容器网络策略编辑。
    注意:
    编辑视图下切换模式将新建空白策略,原模式下创建的策略内容将不会被保留。
    
    3. 在编辑视图下配置容器网络策略,单击页面右上角仅保存保存并开启
    说明:
    仅保存:保存当前网络策略但不会启用该条策略。
    保存并开启:保存当前网络策略并立即开启该条策略。
    

    策略说明

    基本信息

    策略名称:策略名称会关联 Networkpolicy Name、不允许重复,创建后不允许修改、最大长度需小于254个字符。
    策略描述:最大长度需小于1000个字符。

    策略类型

    容器网络策略类型分为系统策略自动发现两种,系统策略是通过容器安全控制台创建和管理的策略,自动发现指系统自动发现和获取到的集群 Networkpolicy 策略,包括手动在集群中创建和变更的策略。
    自动发现的策略进行置入确认后将被纳入产品策略库中统一管理,允许在控制台对策略进行开启/关闭/编辑等操作。

    防护对象

    防护对象是命名空间内通过 pod 标签来关联的一个或多个 pod,具有相同标签的 pod 应用为一组防护对象。
    说明:
    标签指 K8s Labels,标签是附加到 Kubernetes 对象(如 pod)上的键值对,由 Key 和 Value 组成,详情请参见 Labels and Selectors
    防护对象通过多个 pod 标签关联时,多个 pod 标签之间为“与”关系,只有同时满足标签条件的 pod 应用才会被关联到防护对象。
    命名空间:防护对象所属的命名空间,默认为 Default。
    Pods:Pods 标签选择“全部 Pods”时,表示该命名空间下的所有 pod 均为防护对象,此时网络策略等同于对整个命名空间生效。
    注意:
    若使用多个 pod 标签关联防护对象,当新增的标签 key 值重复时,只会保留1个 key 值生效,旧 key 值标签会被覆盖。例如:使用 app1=a,app1=b,app2=c,app2=d 关联防护对象,生效标签为 app1=b,app2=d。
    

    规则说明

    容器网络策略默认规则为允许全部入站\\出站请求,默认情况下允许全部入站和出站请求。配置拒绝全部入站请求,防护对象将拒绝所有请求连接。配置拒绝全部出站请求,防护对象将拒绝所有发起的请求。
    
    
    容器网络策略开启后规则1分钟左右生效,一般情况下秒级即可生效。
    策略配置自定义规则并启用后,将只允许设定的入向/出向规则内的请求,其余请求将被拒绝。

    自定义规则说明

    通过自定义规则配置防护对象允许的入站来源和出向目标,将只允许指定来源或目标的协议端口范围请求,其它请求将默认被拒绝。
    
    
    类型
    Pods:指定允许的 pod 应用,通过 pod 标签关联,多个 pod 标签满足一个即可放行。指定 Pods 标签时需指定命名空间,不指定(指命名空间放空)时生效范围为当前命名空间(与防护对象命名空间相同)。
    命名空间:指定允许的命名空间,通过命名空间标签关联,多个命名空间标签满足一个即可放行。
    IP:指定允许的 IP 范围,输入格式需满足 CIDR 格式且必须符合 IP 的合法性。
    协议端口:可以与上述来源或目标类型组合使用,协议支持配置 TCP 或 UDP,端口为 pod 端口号,填写范围1-65535,多个端口号通过逗号分割。
    说明:
    若配置端口协议规则表示在指定协议下只允许指定端口请求,如“TCP 80”表示指定 TCP 协议下只允许80端口通信,UDP 协议不受影响。
    自定义规则允许的来源或目标可以添加多个,满足任意其中一个规则即可匹配。
    注意:
    若使用多个标签关联 Pod 类型或命名空间类型,当新增的标签 key 值重复时,只会有1个 key 值生效,旧 key 值标签会被覆盖,例如:使用 app1=a,app1=b,app2=c,app2=d 关联防护对象,生效标签为 app1=b,app2=d。

    策略规则冲突

    当同一个防护对象存在多条网络策略规则冲突时,会遵循 K8S NetworkPolicy 策略冲突规则。例如:
    冲突类型
    冲突示例
    示例开启效果
    针对相同 pod 的规则冲突
    A 规则:防护对象为命名空间 A 的 pod1,规则为入站允许所有请求。
    B 规则:防护对象为命名空间 A 的 pod1,规则为入站拒绝所有请求。
    命名空间 A 的 pod1入站允许所有请求。
    针对 pod 和命名空间的规则冲突
    A 规则:防护对象为命名空间 A(默认为全部 pods),规则为入站允许所有请求。
    B 规则:防护对象为命名空间 A 的 pod1,规则为入站拒绝所有请求。
    防护对象命名空间 A 的 pod1入站拒绝所有,命名空间 A 的其它 pod 入站允许所有请求。
    针对 pod 和命名空间的规则冲突
    A 规则:防护对象为命名空间 A(默认为全部 pods),规则为入站拒绝所有请求。
    B 规则:防护对象为命名空间 A 的 pod1,规则为入站允许所有请求。
    防护对象命名空间 A 的 pod1入站允许所有请求,命名空间 A 的其它 pod 入站拒绝所有请求。

    策略变更审计

    在网络策略页面,单击右上角的变更记录,可查看所有策略规则的变更审计记录,审计操作包括新增策略、开启策略、关闭策略、编辑策略、删除策略、确认策略。
    

    相关文档

    容器网络策略的常见隔离场景说明,请参见 使用场景
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持