简介
原生 Kubernetes 存在级联删除机制,删除一个资源时会自动删除与之相关的其他资源,例如删除 Namespace 时会自动删除 Namespace 下所有的 Pod、Service、Configmap 等关联资源,可能导致业务故障。
容器服务(Tencent Kubernetes Engine,TKE)新增了“策略管理”模块,通过系统预置策略的方式,防止误删除引起业务故障。
策略说明
策略分类
集群删除防护:在删除集群时,如果集群中仍然存在节点,则不允许删除。
集群内资源删除防护:在删除 TKE 集群内的各类资源时,如果仍然存在依赖资源,则不允许删除。
支持边界
集群删除防护策略:支持所有版本的 TKE 标准集群和 TKE Serverless 集群,暂不支持注册集群和边缘集群。
集群内资源删除防护策略:目前支持 1.16~1.26 版本的 TKE 标准集群和 TKE Serverless 集群,暂不支持注册集群和边缘集群。
策略类型
基线策略:强制开启,不可关闭。
优选策略:默认开启,用户可关闭。
可选策略:默认关闭,用户可开启。
策略库
类型 | 策略名称 | 策略描述 | 策略类型 |
集群策略 | 集群中存在节点则不允许删除。 | 集群中存在普通节点、原生节点、注册节点,需先下线节点后再删除集群。 | 基线策略 |
命名空间策略 | 命名空间下存在工作负载、服务与路由、存储对象则不允许删除。 | 命名空间内如果存在 Pod、Service、Ingress、Pvc,清空上述资源后,再删除 Namespace。 | 优选策略 |
配置相关策略 | CRD 存在关联的 CR 资源则不允许删除。 | CRD 定义了 CR 资源,需要先删除 CR 资源,再删除 CRD。 | 优选策略 |
操作说明
开启/关闭策略
1. 登录 容器服务控制台,选择左侧导航栏中的集群。
2. 在集群管理页面,选择目标集群 ID,进入集群的基本信息页面。
3. 在左侧导航中选择策略管理,进入策略管理页面选择策略,单击开启/关闭。关闭策略需要二次确认,开启则不需要。如下图所示:
验证策略效果
以集群删除策略为例,创建 TKE 标准集群,验证集群在存在节点情况下删除请求是否会被拦截。
1. 创建有节点的 TKE 标准集群,详细步骤请参见 创建集群。
2. 发起删除集群请求。
3. 在策略管理页面,单击关联事件的数字,查看拦截事件信息。如下图所示: