如何對 Amazon EKS 叢集中處於終止狀態的命名空間進行疑難排解?

上次更新日期:2022 年 10 月 20 日

我嘗試刪除 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集中的命名空間。但是,命名空間停留在「正在終止」狀態。

簡短描述

若要刪除命名空間,Kubernetes 必須先刪除命名空間中的所有資源。然後,它必須檢查已註冊之 API 服務的狀態。由於以下原因,命名空間停留在「終止」狀態:

  • 命名空間包含 Kubernetes 無法刪除的資源。
  • API 服務的狀態為「False」。

解決方案

按照以下説明刪除停留在「正在終止」狀態的命名空間。

1.    儲存類似以下內容的 JSON 檔案:

kubectl get namespace <terminating-namespace> -o json > tempfile.json

2.    從 JSON 檔案的規格表部分中刪除完成項陣列區塊。以下是 JSON 檔案規格表部分的範例,此檔案包含要刪除的完成項陣列區塊:

"spec": {
        "finalizers": [
            "kubernetes"
        ]
    }

刪除完成項陣列區塊後,JSON 檔案的規格表部分如下所示:

"spec" : {
    }

3.    若要套用更改,請執行類似以下的命令:

kubectl replace --raw "/api/v1/namespaces/<terminating-namespace>/finalize" -f ./tempfile.json

4.    確認已將正在終止的命名空間移除:

kubectl get namespaces

對其餘停留在「正在終止」狀態的命名空間重複這些步驟。


此文章是否有幫助?


您是否需要帳單或技術支援?