k8s 強制刪除k8s資源


強制刪除namespace

當刪除ns 時候里面還有其他資源,那么就會導致刪除不了ns ,一直處於Terminating 狀態,然后再在此命名空間內部新增資源的時候就會導致失敗,所以要強制刪除。

 

kubectl get namespace  monitoring -o json > monitoring.json

vi monitoring.json 刪除下面部分

 

 

 

新增一個代理端口,代理的其實就是apiserver的非加密端口8080,運行此命令后會占用終端,需要再開一個窗口執行curl命令

kubectl proxy --port=8081

 

curl -k -H "Content-Type: application/json" -X PUT --data-binary @monitoring.json  http://127.0.0.1:8081/api/v1/namespaces/monitoring/finalize

 

注意:在高版本的k8s中默認只開啟了加密端口,所以需要手動開啟api的非加密8080。例如通過kubeadm安裝的集群可直接更改配置文件

vi /etc/kubernetes/manifests/kube-apiserver.yaml

把--insecure-port=0  改為 --insecure-port=8080 即可,等待幾秒自動生效。

 

解釋:之所以通過8080 非加密端口執行刪除命令,是因為加密端口需要證書認證。

 

快捷方式: 一條命了搞定

kubectl get namespace kube-node-lease  -o json | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/"  | kubectl replace --raw /api/v1/namespaces/kube-node-lease/finalize -f - 

強制刪除POD

kubectl delete pod PODNAME --force --grace-period=0

 

強制刪除pv,pvc

kubectl patch  persistentvolume pvc-63583510-95ba-461c-a71c-0b84c269be40  -p '{"metadata":{"finalizers":null}}'

kubectl patch pvc pvc-common-rw-0   -p '{"metadata":{"finalizers":null}}' -n nlp

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM