1. 程式人生 > 實用技巧 >k8s 強制刪除ns

k8s 強制刪除ns

強制刪除namespace

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

kubectl get namespace  monitoring -o json > monitoring.json

vimonitoring.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 非加密埠執行刪除命令,是因為加密埠需要證書認證。