Amazon EKS クラスターの削除 - Amazon EKS

Amazon EKS クラスターの削除

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

接続されたクラスターを削除するには、「クラスターの登録解除」を参照してください。

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

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

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

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

eksctl
eksctl を使用して Amazon EKS クラスターとノードを削除するには

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

eksctl version

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

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

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

    kubectl delete svc service-name
  3. 次のコマンドを使用して、クラスターとそれに関連するノードを削除します。この際、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 Management Console
AWS Management Console を使用して Amazon EKS クラスターを削除するには
  1. クラスターで実行されているすべてのサービスを一覧表示します。

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

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

    1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

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

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

      注記

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

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

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

    1. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

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

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

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

    1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

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

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

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

    1. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

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

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

AWS CLI
AWS CLI を使用して Amazon EKS クラスターを削除するには
  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