K8s强制删除Terminating资源方式
作者:博同学
文章总结:通过设置Pod等待时间为0、删除Namespace导出Terminating.json、开启调试模式、新开窗口执行请求并修改相关文件名、端口和命名空间,实现了一个高效的脚本操作流程
删除Pod
等待时间设置为0
kubectl delete pod -n xxxxxx --grace-period=0 --force
删除Namespace
导出
kubectl get namespace argocd-test -o json > Terminating.json
Terminating.json
# 删除spec 和status相关内容
最终结果类似这样
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"annotations": {
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"argocd-test\"}}\n"
},
"creationTimestamp": "2024-05-09T03:22:57Z",
"deletionTimestamp": "2024-05-09T03:23:08Z",
"labels": {
"kubernetes.io/metadata.name": "argocd-test"
},
"name": "argocd-test",
"resourceVersion": "557448924",
"uid": "cbb084a2-05b1-47c8-bb6d-ffc466f857cd"
}
}
开启调试模式
k proxy --port=8081
新开窗口执行请求
注意修改 .json文件名、端口、命名空间
curl -k -H “Content-Type: application/json” -X PUT --data-binary @Terminating.json http://127.0.0.1:8082/api/v1/namespaces/kuboard/finalize
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
