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

k8s pod,ns,pvc 强制删除

一、强制删除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 getnamespace <terminating-namespace> -o yaml

输出信息如下:

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:

- kubernetes

status:

3)导出json格式到文件

$ kubectl getnamespace <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输出信息如下:

{

"kind": "Namespace",

"apiVersion": "v1",

"metadata": {

"name": "istio-system",

"selfLink": "/api/v1/namespaces/istio-system/finalize",

"uid": "2e274537-727f-4a8f-ae8c-397473ed619a",

"resourceVersion": "3249492",

"creationTimestamp": "2019-11-20T15:18:06Z",

"deletionTimestamp": "2020-01-16T02:50:02Z"

},

"spec": {

},

"status": {

"phase": "Terminating"

}

}

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

$ kubectl get namespaces

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

http://www.lryc.cn/news/34981.html

相关文章:

  • 力扣第99场双周赛题目记录(复盘)
  • spring事务失效原因
  • pikachu靶场CSRF之TOKEN绕过
  • Windows中配置docker没有hyper-v功能解决方案
  • 电子台账:模板制作之五——二级过滤与多条件组合
  • Kaldi Data preparation
  • libevent 学习笔记
  • jupyter的使用
  • 中级数据开发工程师养成计
  • fastjson 返回 $ref 数据
  • Zookeeper特性和节点数据类型详解
  • Java代码是如何被CPU狂飙起来的?
  • Dynamics365安装失败解决及注册编写
  • Kafka 集群参数
  • 等保2.0与1.0 测评要求的变化
  • nodejs学习巩固笔记-nodejs基础,Node.js 高级编程(核心模块、模块加载机制)
  • 2023年春【移动计算技术】文献精读(二)-3 || 附:创新点、创新思想和技术路线总结
  • 企业新闻稿的格式和要求是什么?如何写好新闻稿?
  • String类的底层原理和版本演变
  • 软考高级信息系统项目管理师系列之二十三:项目采购管理
  • SpringMVC-0308
  • [数据结构]:14-选择排序(顺序表指针实现形式)(C语言实现)
  • 基于C/C++综合训练 ----- 贪吃蛇
  • Unity 混合操作(Blending)
  • Hive建表高阶语句
  • 面向新时代,海泰方圆战略升级!“1465”隆重发布!
  • 带你感受一次JVM调优实战
  • ALG和STUN
  • 原生HTML放大镜
  • C++——模板