Amazon Elastic Kubernetes Service (Amazon EKS) クラスターで名前空間を削除しようとしました。しかし、名前空間は Terminating 状態で止まっています。
簡単な説明
名前空間を削除するためには、Kubernetes はまず名前空間内のすべてのリソースを削除する必要があります。次に、Kubernetes は登録された API サービスをチェックして、その名前空間のリソースへの参照をすべて削除したことを確認します。
次の理由により、名前空間が Terminating 状態のままになる可能性があります。
- 名前空間に、ファイナライザーが原因で Kubernetes が削除できないリソースが含まれている。
- API サービスのステータスが False である。
解決策
次の手順を実行します。
-
Terminating 状態のままになっている名前空間の設定を編集するには、次のコマンドを実行します。
kubectl edit namespace TERMINATING_NAMESPACE
注: TERMINATING_NAMESPACE は、Terminating 状態のままになっている名前空間に置き換えてください。
-
設定内のファイナライザーを含む行を削除します。
例:
finalizers:
- kubernetes
-
変更を適用するには、テキストエディターを保存して閉じます。VIM を使用している場合は、:wq と入力して Enter キーを押します。
-
Terminating 状態の名前空間が削除されたことを確認するには、次のコマンドを実行します。
kubectl get namespaces
Terminating 状態のままになっている他の名前空間についても、これらの手順を繰り返します。
関連情報
Namespaces (名前空間) (Kubernetes のウェブサイト)
Finalizers (ファイナライザー) (Kubernetes のウェブサイト)