k8s pod,ns,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 输出信息如下: 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 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 输出信息如下: { "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,重复以上操作,删除即可!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY