刪除叢集 - Amazon EKS

協助改進此頁面

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

刪除叢集

當您完成使用 Amazon EKS 叢集後,應刪除與之相關聯的資源,才不會產生任何不必要的成本。

您可以使用 eksctl、AWS 管理主控台 或 AWS CLI 刪除叢集。

考量事項

  • 如果由於已移除叢集建立者而收到錯誤,請參閱此篇文章來解決問題。

  • 叢集生命週期不包括適用於 Prometheus 的 Amazon Managed Service 資源,需要獨立於叢集進行維護。刪除叢集後,確認亦同時刪除任何適用的湊集器,以免產生適用的費用。如需詳細資訊,請參閱 Amazon Managed Service for Prometheus 使用者指南中的尋找及刪除湊集器

  • 若要移除連接的叢集,請參閱 從 Amazon EKS 主控台取消註冊 Kubernetes 叢集

EKS 自動模式的考量事項

  • 將刪除任何 EKS 自動模式節點,包括 EC2 受管執行個體

  • 將刪除所有負載平衡器

如需詳細資訊,請參閱 停用 EKS 自動模式

刪除叢集 (eksctl)

此程序需要 eksctl 版本 0.214.0 或更新版本。您可使用以下命令檢查您的版本:

eksctl version

如需有關安裝或更新 eksctl 的指示,請參閱 eksctl 文件中的 Installation 一節。

  1. 列出所有在叢集中執行的服務。

    kubectl get svc --all-namespaces
    1. 刪除任何與 EXTERNAL-IP 值相關的服務。這些服務都是由 Elastic Load Balancing 負載平衡器所朝向的,且您必須在 Kubernetes 中刪除它們,以允許負載平衡器與相關資源可正確釋出。將 service-name 取代為如上所述列出的每個服務的名稱。

      kubectl delete svc service-name
  2. 使用下列命令,將 prod 取代為您的叢集名稱,來刪除叢集及其關聯的節點。

    eksctl delete cluster --name prod

    輸出:

    [ℹ] using region region-code [ℹ] deleting EKS cluster "prod" [ℹ] will delete stack "eksctl-prod-nodegroup-standard-nodes" [ℹ] waiting for stack "eksctl-prod-nodegroup-standard-nodes" to get deleted [ℹ] will delete stack "eksctl-prod-cluster" [✔] the following EKS cluster resource(s) for "prod" will be deleted: cluster. If in doubt, check CloudFormation console

刪除叢集 (AWS 主控台)

  1. 列出所有在叢集中執行的服務。

    kubectl get svc --all-namespaces
  2. 刪除任何與 EXTERNAL-IP 值相關的服務。這些服務都是由 Elastic Load Balancing 負載平衡器所朝向的,且您必須在 Kubernetes 中刪除它們,以允許負載平衡器與相關資源可正確釋出。將 service-name 取代為如上所述列出的每個服務的名稱。

    kubectl delete svc service-name
  3. 刪除所有節點群組和 Fargate 描述檔。

    1. 開啟 Amazon EKS 主控台

    2. 在左側導覽窗格中,選擇 Amazon EKS Clusters (叢集),然後在叢集的標籤式清單中,選擇您要刪除的叢集名稱。

    3. 選擇 Compute (運算) 索引標籤,然後選取要刪除的節點群組。選擇 Delete (刪除),輸入節點群組的名稱,然後選擇 Delete (刪除)。刪除叢集中的所有節點群組。

      注意

      列出的節點群組僅為受管節點群組

    4. 選擇要刪除的 Fargate Profile (Fargate 描述檔),選取 Delete (刪除),輸入描述檔的名稱,然後選擇 Delete (刪除)。刪除叢集中的所有 Fargate 描述檔。

  4. 刪除所有自我管理節點 AWS CloudFormation 堆疊。

    1. 開啟 AWS CloudFormation 主控台

    2. 選擇要刪除的節點堆疊,然後選擇 Delete (刪除)。

    3. Delete stack (刪除堆疊) 確認對話方塊中,選擇 Delete stack (刪除堆疊)。刪除叢集中的所有自我管理節點堆疊。

  5. 刪除叢集。

    1. 開啟 Amazon EKS 主控台

    2. 選擇要刪除的叢集並選擇 Delete (刪除)

    3. 在刪除叢集確認畫面上,選擇 Delete (刪除)

  6. (選用) 刪除 VPC AWS CloudFormation 堆疊。

    1. 開啟 AWS CloudFormation 主控台

    2. 選取要刪除的 VPC 堆疊,然後選擇 Delete (刪除)。

    3. Delete stack (s刪除堆疊) 確認對話方塊中,選擇 Delete stack (刪除堆疊)。

刪除叢集 (AWS CLI)

  1. 列出所有在叢集中執行的服務。

    kubectl get svc --all-namespaces
  2. 刪除任何與 EXTERNAL-IP 值相關的服務。這些服務都是由 Elastic Load Balancing 負載平衡器所朝向的,且您必須在 Kubernetes 中刪除它們,以允許負載平衡器與相關資源可正確釋出。將 service-name 取代為如上所述列出的每個服務的名稱。

    kubectl delete svc service-name
  3. 刪除所有節點群組和 Fargate 描述檔。

    1. 使用下列命令列出叢集中的節點群組。

      aws eks list-nodegroups --cluster-name my-cluster
      注意

      列出的節點群組僅為受管節點群組

    2. 使用下列命令來刪除每個節點群組。刪除叢集中的所有節點群組。

      aws eks delete-nodegroup --nodegroup-name my-nodegroup --cluster-name my-cluster
    3. 使用下列命令列出您叢集中的 Fargate 描述檔。

      aws eks list-fargate-profiles --cluster-name my-cluster
    4. 使用下列命令來刪除每個 Fargate 描述檔。刪除叢集中的所有 Fargate 描述檔。

      aws eks delete-fargate-profile --fargate-profile-name my-fargate-profile --cluster-name my-cluster
  4. 刪除所有自我管理節點 AWS CloudFormation 堆疊。

    1. 透過以下命令列出可用的 AWS CloudFormation 堆疊。在產生輸出中尋找節點範本名稱。

      aws cloudformation list-stacks --query "StackSummaries[].StackName"
    2. 使用以下命令,將 node-stack 取代為您節點堆疊的名稱,來刪除工作節點堆疊。刪除叢集中的所有自我管理節點堆疊。

      aws cloudformation delete-stack --stack-name node-stack
  5. 使用以下命令,將 my-cluster 替換為您的叢集名稱以刪除叢集。

    aws eks delete-cluster --name my-cluster
  6. (選用) 刪除 VPC AWS CloudFormation 堆疊。

    1. 透過以下命令列出可用的 AWS CloudFormation 堆疊。在產生輸出中尋找 VPC 範本名稱。

      aws cloudformation list-stacks --query "StackSummaries[].StackName"
    2. 使用以下命令,將 my-vpc-stack 替換為您的 VPC 堆疊名稱以刪除 VPC 堆疊。

      aws cloudformation delete-stack --stack-name my-vpc-stack