1. 程式人生 > 其它 >K8S名稱空間處於Terminating狀態,如何強制刪除

K8S名稱空間處於Terminating狀態,如何強制刪除

一、現象

當刪除名稱空間後,發現該空間一直處於Terminating狀態

[root@imanager-beta-arm-21756-5g5ap ~]# kubectl get ns
NAME          STATUS        AGE
default       Active        48m
kube-public   Active        48m
kube-system   Active        48m
supermap      Terminating   37m

二、強制刪除流程

2.1 新開啟一個視窗,啟動一個程序

kubectl proxy --port=8081

2.2 匯出當前名稱空間json

kubectl get ns supermap  -o json > supermap.json

2.3 開啟匯出的json檔案,並將spec欄位設定為空,如下最終結果

[root@imanager-beta-arm-21756-5g5ap ~]# cat supermap.json 
{
    "apiVersion": "v1",
    "kind": "Namespace",
    "metadata": {
        "creationTimestamp": "2020-07-22T01:04:57Z",
        "deletionTimestamp": "2020-07-22T01:24:34Z",
        "name": "supermap",
        "resourceVersion": "6656",
        "selfLink": "/api/v1/namespaces/supermap",
        "uid": "5bfc29b1-cbb7-11ea-a69c-fa163efc4ca9"
    },
    "spec": {
    },
    "status": {
        "phase": "Terminating"
    }
}

2.4 通過傳送請求的方式進行刪除

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


其中

  • supermap.json 是我們匯出的檔案
  • supermap 是需要刪除的名稱空間

2.5 執行刪除命令返回檔案內容

[root@imanager-beta-arm-21756-5g5ap ~]# curl -k -H "Content-Type:application/json" -X PUT --data-binary @supermap.json http://127.0.0.1:808/api/v1/namespaces/supermap/finalize
{
  "kind": "Namespace",
  "apiVersion": "v1",
  "metadata": {
    "name": "supermap",
    "selfLink": "/api/v1/namespaces/supermap/finalize",
    "uid": "5bfc29b1-cbb7-11ea-a69c-fa163efc4ca9",
    "resourceVersion": "11000",
    "creationTimestamp": "2020-07-22T01:04:57Z",
    "deletionTimestamp": "2020-07-22T01:24:34Z"
  },
  "spec": {
    
  },
  "status": {
    "phase": "Terminating"
  }
}

2.6 最後再次檢查名稱空間,Terminating狀態已被刪除

[root@imanager-beta-arm-21756-5g5ap ~]#kubectl get ns
NAME          STATUS   AGE
default       Active   53m
kube-public   Active   53m
kube-system   Active   53m

(轉發請註明出處:http://www.cnblogs.com/zhangyongli2011/ 如發現有錯,請留言,謝謝)