强制删除kubernetes中的处于Terminating状态的资源

1 强制删除 kubernetes 中的pod 资源

# pod处于 Terminating 状态,先查看该pod是否有对应的deployment资源和replicaset资源,如果有这两种资源先删除这两种资源 kubectl delete deployment -n namespace kubectl delete rc namespace # 再去删除pod kubectl delete pod --grace-period=0 --force # 如果在这些命令后 pod 仍处于 `Unknown` 状态 或者 `Terminating` ,请使用下面命令从集群中删除pod kubectl patch pod -p '{"metadata":{"finalizers":null}}' -n namespace

2 强制删除namespace
当我们执行 kubectl delete ns 想删除不再使用的 namespace 或者想重建某个namespace 下的资源时,发现 namespace 处于 Terminating 状态
2.1 获取关于该 namespacejson信息
kubectl get ns> tmp.json

2.2 使用 vi 编辑文件去掉 spec 字段的内容
2.3 另外打开一个终端窗口,执行 kubectl proxy 指令
kubectl proxy

【强制删除kubernetes中的处于Terminating状态的资源】2.4 在最初的窗口执行下面命令
curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.jsonhttp://127.0.0.1:8001/api/v1/namespaces/longhorn-system/finalize

    推荐阅读