当前位置: 首页 > news >正文

k8s强制删除podpvpvc和nsnamespace

k8s如何强制删除pod&pv&pvc和ns&namespace方法

namespace、pod、pv、pvc全部处于“Terminating”状态时,此时的该名称空间下的所有控制器都已经被删除了,之所以出现pod、pvc、pv、ns无法删除,那是因为kubelet 阻塞,有其他的资源在使用该namespace,比如CRD等,尝试重启kubelet,再删除该namespace 也不好使。

正确的删除方法:删除pod–> 删除pvc —> 删除pv --> 删除名称空间

一、强制删除pod

kubectl delete pod <your-pod-name> -n <name-space> --force --grace-period=0

解决方法:加参数 --force --grace-period=0,grace-period表示过渡存活期,默认30s,在删除pod之前允许pod慢慢终止其上的容器进程,从而优雅退出,0表示立即终止pod

二、强制删除pv、pvc

kubectl patch pv xxx -p '{"metadata":{"finalizers":null}}'
kubectl patch pvc xxx -p '{"metadata":{"finalizers":null}}'

直接删除k8s etcd数据库中的记录!

三、强制删除ns

在尝试以下命令强制删除也不好使:

kubectl delete ns <terminating-namespace> --force --grace-period=0

解决方法:

1)运行以下命令以查看处于“Terminating”状态的namespace:

kubectl get namespaces

2)选择一个Terminating namespace,并查看namespace 中的finalizer。运行以下命令:

kubectl get namespace <terminating-namespace> -o yaml

3)导出json格式到文件

kubectl get namespace <terminating-namespace> -o json >tmp.json

4)编辑tmp.josn,删除finalizers 字段的值

{"apiVersion": "v1","kind": "Namespace","metadata": {"creationTimestamp": "2019-11-20T15:18:06Z","deletionTimestamp": "2020-01-16T02:50:02Z","name": "<terminating-namespace>","resourceVersion": "3249493","selfLink": "/api/v1/namespaces/knative-eventing","uid": "f300ea38-c8c2-4653-b432-b66103e412db"},"spec": {    #从此行开始删除"finalizers": []},   # 删到此行"status": {"phase": "Terminating"}
}

5)开启proxy

kubectl proxy

执行该命令后,当前终端会被卡住
6)打开新的一个窗口,执行以下命令

curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/<terminating-namespace>/finalize

7)确认处于Terminating 状态的namespace已经被删除

kubectl get namespaces

如果还有处于Terminating 状态的namespace,重复以上操作,删除即可!

k8s强制删除pod、svc、namespace(Terminating)驱逐pod,coredns

k8s强制删除hang死状态pod

http://www.lqws.cn/news/504217.html

相关文章:

  • 《陈欣与链接器的黄昏》
  • 华为云Flexus+DeepSeek征文|体验华为云ModelArts快速搭建Dify-LLM应用开发平台并创建小红书爆款文案大模型
  • 软件工程:从理论到实践,构建可靠软件的艺术与科学
  • python有哪些常用的GUI(图形用户界面)库及选择指南
  • 通义灵码编程智能体深度评测(Qwen3模型+终端操作+MCP工具调用实战)
  • STM32 环境监测与控制系统的设计与实现
  • 认识Scikit-learn/PyTorch/TensorFlow这几个AI框架
  • 从代码学习深度学习 - 情感分析:使用循环神经网络 PyTorch版
  • 国产安路FPGA纯verilog视频图像去雾,基于暗通道先验算法实现,提供5套TD工程源码和技术支持
  • 帮助装修公司拓展客户资源的微信装修小程序怎么做?
  • 开篇-认识Gin——Go语言Web框架的性能王者
  • 接口自动化测试之 pytest 接口关联框架封装
  • Qt 中使用 gtest 做单元测试
  • 如何一次性将 iPhone 中的联系人转移到 PC
  • Learning to See in the Dark 论文阅读
  • 安卓android com.google.android.material.tabs.TabLayout 设置下拉图标无法正常显示
  • ubuntu虚拟机扩容
  • 【计算机网络】期末复习
  • centos 7 mysql 8 离线部署
  • (3)ROS2:6-dof前馈+PD / 阻抗控制器
  • 【Vue】 keep-alive缓存组件实战指南
  • C# VB.NET中Tuple轻量级数据结构和固定长度数组
  • 第五课:大白话教你用K邻近算法做分类和回归
  • 从零学习linux(2)——管理
  • 战地2042(战地风云)因安全启动(Secure Boot)无法启动的解决方案以及其他常见的启动或闪退问题
  • iOS 抓包实战:时间戳偏差导致的数据同步异常排查记录
  • spring-ai 1.0.0 学习(十四)——向量数据库
  • 【机器学习深度学习】反向传播机制
  • 使用argparse封装python程序为命令行工具
  • C++ 第二阶段:模板编程 - 第一节:函数模板与类模板