删除节点池
- 功能名称: 删除标准节点池
- API 版本: 2018-05-25
- API 名称:
DeleteClusterNodePool - 文档更新时间: 2026-06-17
- Agent 友好度: ⭐⭐⭐⭐⭐
删除节点池会移除节点池管理对象,并按节点池配置和云资源策略处理关联节点。生产环境删除前必须先迁移业务 Pod,并确认是否需要保留底层 CVM、CBS 或其他关联资源。
!!! danger “生产风险” 删除节点池可能导致节点被销毁、Pod 被驱逐和业务容量下降。执行前必须完成业务迁移、备份检查和容量确认。
- 已记录
ClusterId和NodePoolId - 已确认节点池不是核心业务唯一承载池
- 已将业务 Pod 迁移到其他节点池
- 已确认删除保护状态
- 已确认底层 CVM、CBS、EIP 等资源处理策略
查询节点池详情
Section titled “查询节点池详情”tccli tke DescribeClusterNodePoolDetail \ --Region ap-guangzhou \ --ClusterId cls-xxxxxxxx \ --NodePoolId np-xxxxxxxx查看节点和 Pod
Section titled “查看节点和 Pod”kubectl get nodes -l node-pool=production-pool -o widekubectl get pods -A -o wide安全迁移 Pod
Section titled “安全迁移 Pod”# 设置节点不可调度kubectl cordon <node-name>
# 驱逐业务 Podkubectl drain <node-name> \ --ignore-daemonsets \ --delete-emptydir-data \ --timeout=10mStep 1: 关闭删除保护
Section titled “Step 1: 关闭删除保护”如果节点池启用了删除保护,先通过修改接口关闭:
tccli tke ModifyClusterNodePool \ --Region ap-guangzhou \ --ClusterId cls-xxxxxxxx \ --NodePoolId np-xxxxxxxx \ --DeletionProtection falseStep 2: 删除节点池
Section titled “Step 2: 删除节点池”tccli tke DeleteClusterNodePool \ --Region ap-guangzhou \ --ClusterId cls-xxxxxxxx \ --NodePoolId np-xxxxxxxx成功响应示例:
{ "RequestId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}Python SDK 示例
Section titled “Python SDK 示例”from tencentcloud.common import credentialfrom tencentcloud.tke.v20180525 import models, tke_client
cred = credential.Credential("SecretId", "SecretKey")client = tke_client.TkeClient(cred, "ap-guangzhou")
req = models.DeleteClusterNodePoolRequest()req.ClusterId = "cls-xxxxxxxx"req.NodePoolId = "np-xxxxxxxx"
resp = client.DeleteClusterNodePool(req)print(f"RequestId: {resp.RequestId}")验证节点池不存在
Section titled “验证节点池不存在”tccli tke DescribeClusterNodePools \ --Region ap-guangzhou \ --ClusterId cls-xxxxxxxx \ --Filters '[ { "Name": "NodePoolsId", "Values": ["np-xxxxxxxx"] } ]'验证 Kubernetes 节点
Section titled “验证 Kubernetes 节点”kubectl get nodes -l node-pool=production-poolkubectl get pods -A -o wide期望结果:
- 节点池列表中不再返回目标节点池
- 业务 Pod 已迁移到其他可用节点
- 集群中没有长时间
Pending的关键 Pod
| 问题 | 可能原因 | 处理方式 |
|---|---|---|
| 删除失败 | 删除保护未关闭 | 先设置 DeletionProtection=false |
| Pod 长时间无法驱逐 | PDB、local storage 或 DaemonSet 阻塞 | 检查 kubectl drain 输出 |
| 删除后仍看到 CVM | 资源删除策略保留或云资源回收延迟 | 检查 AS/CVM 控制台 |
| 删除后业务容量不足 | 未提前扩容其他节点池 | 回滚前先扩容备用节点池 |
- 删除前先扩容目标迁移节点池,确保有足够容量。
- 分批 cordon/drain 节点,观察业务错误率和 Pod 重建速度。
- 删除生产节点池前保留变更记录,包括 RequestId、节点列表和迁移结果。
- 对长期生产节点池启用删除保护,只在维护窗口临时关闭。