如何删除未在CloudFormation显示却阻碍EKS集群创建/删除的nodegroup
问题根因
你之前删除atp-dev集群时,nodegroup对应的CloudFormation栈因为安全组(SG)资源被占用出现删除失败,残留的nodegroup栈占用了集群VPC等导出资源,导致无法重建同名集群。CloudFormation控制台看不到对应栈是因为默认筛选规则仅展示「活跃」状态的栈,未包含删除失败的记录。
解决步骤
方式一:优先使用eksctl命令清理(操作更简便)
- 先强制删除残留的问题nodegroup,执行命令:
eksctl delete nodegroup --cluster=atp-dev --name=ng-7b715a90 --region=us-west-2 --force --wait
- 等待nodegroup删除完成后,执行命令清理残留集群资源:
eksctl delete cluster --name=atp-dev --region=us-west-2 --wait
- 所有资源清理完成后,即可重新执行你原本的集群创建命令。
方式二:手动控制台清理(适用于命令清理失败的场景)
- 清理卡住的安全组资源
- 从你返回的nodegroup栈输出中找到
SharedNodeSecurityGroup对应的安全组ID - 进入AWS EC2控制台,区域切换到
us-west-2,打开「安全组」页面,搜索对应ID - 先删除该安全组的所有入站、出站规则,再删除安全组本身;如果提示仍有依赖,先释放关联的弹性网卡、负载均衡等资源后再删除
- 从你返回的nodegroup栈输出中找到
- 清理删除失败的nodegroup栈
- 进入CloudFormation控制台,区域确认是
us-west-2 - 在堆栈列表顶部的筛选栏,勾选「删除失败」「已删除」状态,找到名为
eksctl-atp-dev-nodegroup-ng-7b715a90的栈 - 选中该栈点击删除,等待删除完成
- 进入CloudFormation控制台,区域确认是
- 清理集群主栈
等待nodegroup栈删除完成后,找到eksctl-atp-dev-cluster栈,执行删除操作即可。
内容的提问来源于stack exchange,提问作者atp
相关产品推荐
相关产品推荐

