跳转到内容

删除节点池

  • 功能名称: 删除标准节点池
  • API 版本: 2018-05-25
  • API 名称: DeleteClusterNodePool
  • 文档更新时间: 2026-06-17
  • Agent 友好度: ⭐⭐⭐⭐⭐

删除节点池会移除节点池管理对象,并按节点池配置和云资源策略处理关联节点。生产环境删除前必须先迁移业务 Pod,并确认是否需要保留底层 CVM、CBS 或其他关联资源。

!!! danger “生产风险” 删除节点池可能导致节点被销毁、Pod 被驱逐和业务容量下降。执行前必须完成业务迁移、备份检查和容量确认。


  • 已记录 ClusterIdNodePoolId
  • 已确认节点池不是核心业务唯一承载池
  • 已将业务 Pod 迁移到其他节点池
  • 已确认删除保护状态
  • 已确认底层 CVM、CBS、EIP 等资源处理策略

Terminal window
tccli tke DescribeClusterNodePoolDetail \
--Region ap-guangzhou \
--ClusterId cls-xxxxxxxx \
--NodePoolId np-xxxxxxxx
Terminal window
kubectl get nodes -l node-pool=production-pool -o wide
kubectl get pods -A -o wide
Terminal window
# 设置节点不可调度
kubectl cordon <node-name>
# 驱逐业务 Pod
kubectl drain <node-name> \
--ignore-daemonsets \
--delete-emptydir-data \
--timeout=10m

如果节点池启用了删除保护,先通过修改接口关闭:

Terminal window
tccli tke ModifyClusterNodePool \
--Region ap-guangzhou \
--ClusterId cls-xxxxxxxx \
--NodePoolId np-xxxxxxxx \
--DeletionProtection false
Terminal window
tccli tke DeleteClusterNodePool \
--Region ap-guangzhou \
--ClusterId cls-xxxxxxxx \
--NodePoolId np-xxxxxxxx

成功响应示例:

{
"RequestId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
from tencentcloud.common import credential
from 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}")

Terminal window
tccli tke DescribeClusterNodePools \
--Region ap-guangzhou \
--ClusterId cls-xxxxxxxx \
--Filters '[
{
"Name": "NodePoolsId",
"Values": ["np-xxxxxxxx"]
}
]'
Terminal window
kubectl get nodes -l node-pool=production-pool
kubectl get pods -A -o wide

期望结果:

  • 节点池列表中不再返回目标节点池
  • 业务 Pod 已迁移到其他可用节点
  • 集群中没有长时间 Pending 的关键 Pod

问题可能原因处理方式
删除失败删除保护未关闭先设置 DeletionProtection=false
Pod 长时间无法驱逐PDB、local storage 或 DaemonSet 阻塞检查 kubectl drain 输出
删除后仍看到 CVM资源删除策略保留或云资源回收延迟检查 AS/CVM 控制台
删除后业务容量不足未提前扩容其他节点池回滚前先扩容备用节点池

  1. 删除前先扩容目标迁移节点池,确保有足够容量。
  2. 分批 cordon/drain 节点,观察业务错误率和 Pod 重建速度。
  3. 删除生产节点池前保留变更记录,包括 RequestId、节点列表和迁移结果。
  4. 对长期生产节点池启用删除保护,只在维护窗口临时关闭。