クラスターを削除 - Amazon EKS

クラスターを削除

Amazon EKS クラスターの使用が終了したら、関連付けられたリソースを削除して、不要なコストが発生しないようにする必要があります。

接続されたクラスターを削除するには、「Amazon EKS コンソールから Kubernetes クラスターの登録を解除する」を参照してください。

重要
  • クラスター内にロードバランサーに関連付けられているアクティブなサービスがある場合は、クラスターを削除する前にこれらのサービスを削除して、ロードバランサーが正しく削除されるようにする必要があります。この操作を行わないと、VPC 内のリソースが孤立し、VPC を削除できなくなる可能性があります。

  • クラスター作成者が削除されたためにエラーが発生した場合は、この記事を参照して解決してください。

  • Amazon Managed Service for Prometheus リソースはクラスターのライフサイクル外にあるため、クラスターとは別途維持する必要があります。クラスターを削除するときは、対象コストを抑えるために、該当するスクレイパーも削除してください。詳細については、Amazon Managed Service for Prometheus ユーザーガイドの「スクレイパーの検出と作成」を参照してください。

eksctl、AWS Management Console、またはAWS CLI を使用してクラスターを削除できます。

クラスターの削除 (eksctl)

この手順には、eksctl バージョン 0.190.0 以降が必要です。お使いのバージョンは、以下のコマンドを使用して確認できます。

eksctl version

eksctl のインストールまたはアップグレードの手順については、eksctl ドキュメントの「インストール」を参照してください。

  1. クラスターで実行されているすべてのサービスを一覧表示します。

    kubectl get svc --all-namespaces
    1. 関連付けられた EXTERNAL-IP 値のあるサービスすべてを削除します。これらのサービスの前には Elastic Load Balancing ロードバランサーがあり、ロードバランサーと関連リソースを適切に解放するには、Kubernetes でそれらを削除する必要があります。

      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 でそれらを削除する必要があります。

    kubectl delete svc service-name
  3. すべてのノードグループと Fargate プロファイルを削除します。

    1. Amazon EKS コンソールを開きます。

    2. 左のナビゲーションペインで Amazon EKS [クラスター] を選択し、クラスターのタブ付きリストから、削除するクラスター名を選択します。

    3. [コンピューティング] タブを選択し、削除するノードグループを選択します。[削除] を選択し、ノードグループの名前を入力し、[削除] を選択します。クラスター内のすべてのノードグループを削除します。

      注記

      ここでリストに表示されるノードグループは、マネージド型ノードグループのみです。

    4. 削除する [Fargate プロファイル] を選択し、[削除] を選択し、プロファイルの名前を入力した上で [削除] を選択します。クラスター内のすべてのFargate プロファイルを削除します。

  4. すべてのセルフマネージド型ノードの AWS CloudFormation スタックを削除します。

    1. AWS CloudFormation コンソールを開きます。

    2. 削除するノードスタックを選択し、[削除] を選択します。

    3. [スタックの削除] 確認ダイアログボックスで、[スタックを削除] をクリックします。クラスター内のすべてのセルフマネージド型ノードスタックを削除します。

  5. クラスターを削除します。

    1. Amazon EKS コンソールを開きます。

    2. 削除するクラスターを選択し、[削除] を選択します。

    3. クラスターの削除確認画面で、[削除] を選択します。

  6. (オプション) VPC AWS CloudFormation スタックを削除します。

    1. AWS CloudFormation コンソールを開きます。

    2. 削除する VPC スタックを選択し、[削除] をクリックします。

    3. [スタックの削除] 確認ダイアログボックスで、[スタックを削除] をクリックします。

クラスターを削除する (AWS CLI)

  1. クラスターで実行されているすべてのサービスを一覧表示します。

    kubectl get svc --all-namespaces
  2. 関連付けられた EXTERNAL-IP 値のあるサービスすべてを削除します。これらのサービスの前には Elastic Load Balancing ロードバランサーがあり、ロードバランサーと関連リソースを適切に解放するには、Kubernetes でそれらを削除する必要があります。

    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. 以下のコマンドを使用して、VPC スタックを削除します。my-vpc-stack は実際の VPC スタック名に置き換えてください。

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