尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

kubernetes集群中怎么强制删除处于Terminating的namespace资源

kubernetes集群中怎么强制删除处于Terminating的namespace资源
📅 发布时间:2026/6/20 1:57:09

强制删除 namespaces

命令如下:

[root@master-01 ~]# kubectl get ns monitoring -o json > ns.json
[root@master-01 ~]# vim ns.json 
[root@master-01 ~]# kubectl replace --raw "/api/v1/namespaces/monitoring/finalize" -f ns.json

为什么会出现一直Terminating,但是却一直删除不掉
即使用--force --grace-period 0也不行,是因为namespace的finalizer 没机会被清除。

举个例子

比如你部署了 Prometheus Operator:

Operator 在 CRD 对象(servicemonitors.monitoring.coreos.com)上加了 finalizer,要求自己来清理。

你删除了 monitoring 命名空间 → Operator Pod 也被删除。

没有 Pod 来移除 finalizer → 命名空间就一直卡在 Terminating。

原因:

控制器会“不再跑”或“异常退出”的常见原因是:

  • Pod 崩溃或被删除
  • Deployment/DaemonSet副本数为 0
  • 镜像/配置错误导致启动失败
  • API Server 或 RBAC 权限问题
  • 命名空间删除时控制器自身也被删掉
  • 这就是为什么命名空间会卡在 Terminating ——因为没人来移除 finalizer。

具体流程如下:

  1. 命名空间删除时,K8s 会检查 spec.finalizers。
  2. 如果 finalizer 没有被清理,命名空间就卡在 Terminating。
  3. 你用 kubectl replace --raw ... finalize,相当于直接告诉 API Server:
  4. “我已经手动清理了 finalizer,现在可以强制完成删除。”
  5. API Server 接收你提供的 JSON,把 finalizer 清空,命名空间立刻消失。

kubectl replace --raw "/api/v1/namespaces/dev-project/finalize" -f ns.json

命令解析、补充

--raw 表示直接调用 Kubernetes API 的原始路径,而不是通过常规的资源类型。 这里访问的是命名空间的特殊子资源:finalize
常规的资源类型指的是我们平时用 kubectl 操作的那些标准对象,这些资源都有对应的 常规 API 路径,比如:

Pod → /api/v1/namespaces/<ns>/pods
Deployment → /apis/apps/v1/namespaces/<ns>/deployments
Namespace → /api/v1/namespaces

什么是子资源

当你用:

kubectl get pod
kubectl apply -f xxx.yaml
kubectl delete svc my-service

这些都是通过 常规资源类型 API 来操作。
除了这些常规资源类型,有些对象还定义了 子资源 (subresource),用于特殊操作:

Pod 的 log → /api/v1/namespaces/<ns>/pods/<pod>/log
Pod 的 exec → /api/v1/namespaces/<ns>/pods/<pod>/exec
Deployment 的 scale → /apis/apps/v1/namespaces/<ns>/deployments/<name>/scale
Namespace 的 finalize → /api/v1/namespaces/<ns>/finalize

这些子资源不是常规的 CRUD,而是额外的 API 入口。 --raw 就是让你直接访问这些 原始 API 路径,而不是通过 kubectl get/apply/delete 的常规方式。

--此文章仅为笔者拙见,参考了一些资料和文档,欢迎读者修正和补充

相关新闻

  • 检查路径深度
  • chrome driver下载地址
  • 【C语言】选择结构和循环结构的进阶 - 指南

最新新闻

  • 【微积分】三角函数求导积分公式的图形化记忆法
  • Dify插件集合:AI应用开发中的标准化组件库架构实践
  • Cesium 曲线漫游教程 | 3D Tiles·Cesium Entity三维可视化源码
  • 终极指南:如何用免费自动化工具轻松抢到大麦演唱会门票
  • 代数多样性:单快照谱估计的群论革命
  • 图解Cache映射三剑客:从直接映射到组相联,如何平衡速度与空间的艺术

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号