Amazon EKS クラスターを削除できないのはなぜですか?

最終更新日: 2020 年 2 月 20 日

Amazon Elastic Kubernetes Service (Amazon EKS) クラスターを削除できません。または、Amazon EKS クラスターは削除できましたが、ワーカーノードがまだ作成され続けます。

簡単な説明

Amazon EKS クラスターを完全に削除するには、Amazon EKS コントロールプレーンとデータプレーンを削除するか、ワーカーノードを削除する必要があります。詳細については、「クラスターの削除」を参照してください。

注: クラスターの作成に使用したのと同じツールを使用してクラスターを削除することをお勧めします。

重要: Kubernetes サービスと Ingress リソースを削除すると、アカウントからロードバランサーが削除されます。AWS マネジメントコンソールでロードバランサーを作成した場合、手動でそのロードバランサーを削除するか、Kubernetes でサービスを削除する必要があります。

それでもクラスターコンポーネントを削除できない場合は、シナリオに基づいて次のオプションを検討してください。

  • クラスターを削除しようとしたときに「The following resource(s) failed to delete (次のリソースの削除に失敗しました)」または「resource XXXXXXX has a dependent object (リソース XXXXXXX に依存オブジェクトがあります)」というエラーメッセージが表示された場合は、クラスターコンポーネントを作成した AWS CloudFormation スタックを削除するセクションの手順を実行します。
  • クラスターを削除してもノードがアクティブな場合は、ワーカーノードの作成に使用した Auto Scaling グループを削除するセクションの手順を実行します。この問題は、AWS CloudFormation スタックの一部としてクラスターに関連付けられているアンマネージドワーカーノードによって発生します。
  • クラスターが長期間 DELETING 状態のままになっている場合は、AWS Identity and Access Management (IAM) ポリシーまたはロールが欠落しているためにクラスターの削除を妨げていないかを確認します。IAM ロールが欠落している場合は、Amazon EKS の IAM サービスロールを再作成するセクションの手順を実行します。

注: クラスターの削除には時間がかかるのが普通です。DELETING 状態のクラスターに対しては課金されません。

解決方法

クラスターコンポーネントを作成した AWS CloudFormation スタックを削除する

1.    依存関係のためにスタックを削除できない場合は、依存関係を持つリソースを手動で削除するか、依存関係を削除します。その後、もう一度スタックの削除を試みます。

削除に失敗したリソースを保持する場合は、スタックを削除するときにリソースをスキップします。このオプションは、DELETE_FAILED 状態のリソースまたはスタックでのみ使用できます。

スキップされたリソースはアカウント内でアクティブなままですが、AWS CloudFormation スタックは正常に削除されます。その後、AWS マネジメントコンソールからリソースを削除できます。

2.    スタックが削除されたら、クラスターの削除をもう一度試みます。

スタックの削除が遅い、または削除に失敗した場合は、AWS CloudTrailDeleteCluster API 呼び出しを確認します。

ワーカーノードの作成に使用した Auto Scaling グループを削除する

1.    エラーを返した AWS CloudFormation ワーカーノードのスタックを削除します 。これにより、スタックの一部として作成された Auto Scaling グループが削除されます。

注: インスタンスが作成されたスタックの名前を見つけるには、aws:cloudformation:stack-nameという形式でインスタンスタグを探します。

2.    Auto Scaling グループが削除されたことを確認します。

Auto Scaling グループがまだ存在する場合は、Auto Scaling グループを削除します

Amazon EKS の IAM サービスロールを再作成する

Amazon EKS がユーザーに代わって他の AWS のサービスを呼び出すことを許可する IAM サービスロールが必要です。クラスターの作成後にロールを削除または変更すると、クラスターは一部のリソース (ロードバランサーや Elastic Network Interface など) の削除に失敗します。

1.    再度 IAM ロールを作成します

重要: クラスターを管理するサービスとして Amazon EKS を選択してください。

2.    AmazonEKSServicePolicy および AmazonEKSClusterPolicy 管理ポリシーを IAM ロールにアタッチします。