頑固なKubernetesネームスペースを削除する方法 | TechRepublic

頑固なKubernetesネームスペースを削除する方法 | TechRepublic
Kubernetes 名前空間を削除する開発者。
画像: BalanceFormCreative/Adobe Stock

Kubernetes の名前空間は、ユーザーやチーム間でリソースを分割するための手段です。これにより、リソースの重複や、何がどのリソースに属しているか、どのデプロイメントがどこに配置されるかといった混乱を防ぐことができます。名前空間は、これらのリソースをチームやプロジェクト全体に分散させるのに最適な方法です。

参照:採用キット: バックエンド開発者(TechRepublic Premium)

あなたとチームが名前空間を操作していくうちに、ある名前空間が不要になったにもかかわらず、何らかの理由で削除できないという状況に遭遇するでしょう。これは、同じ名前空間を別のプロジェクトで使用する必要がある場合や、その名前空間が他のプロジェクトで問題を引き起こす場合に問題となる可能性があります。

幸いなことに、これらの厄介な名前空間を取り除く方法があります。簡単ではありませんが、繰り返し実行でき、信頼性も高いです。その方法をお見せしましょう。

頑固なKubernetes名前空間を削除するのに必要なもの

このプロセスに必要なのは、動作中の Kubernetes クラスター、スタックされた名前空間、およびkubectl コマンドを実行できるユーザーだけです。

名前空間の設定を編集する方法

問題となっている名前空間がprojectxだと仮定しましょう。まず最初に、projectxの名前空間設定ファイルを編集する必要があります。

参照: DevOps 認定コースと模擬試験の完全バンドル(TechRepublic Academy)

まず、Kubernetes コントローラーでターミナル ウィンドウを開き、次のコマンドを使用して、その名前空間構成の内容をファイルにダンプします。

kubectl get ns projectx -o json > tmp.json

次に、次のコマンドでそのファイルを編集する必要があります。

nano tmp.json

そのファイルには、次のようなセクションを含むコード ブロックがあります。

"spec": {

    "finalizers": [
        "kubernetes"
     ]
 }

次のようになるかもしれません:

}, "spec": { "finalizers": [ "kubernetes" ] },

そのセクションから、「kubernetes」エントリを削除する必要があります。次のようになります。

"spec": {

    "finalizers": [
     ]
           }

または次のようになります:

}, "spec": { "finalizers": [ ] },

ファイルを保存して閉じてください。このターミナルは開いたままにしておいてください。

新しい設定ファイルを適用する方法

変更した設定ファイルを適用する必要があります。Kubernetesコントローラーで別のターミナルウィンドウを開き、プロキシコマンドを実行します。

kubectl proxy

元のターミナルに戻り、次のコマンドで編集した設定ファイルを適用します。

curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/projectx/finalize

設定を適用すると名前空間が削除されます。設定ファイルを適用したら、次のコマンドで名前空間が削除されたことを確認できます。

kubectl get ns projectx

出力は次のようになります。

Error from server (NotFound): namespaces "projectx" not found

名前空間の削除とその他のチュートリアル

これで完了です。あの頑固な名前空間の削除に成功しました。名前空間は問題を引き起こす可能性があり、問題が発生した際に削除できるようにしておく必要があるため、この作業に慣れておく必要があります。これで方法がわかりましたね。

参照: Kubernetes とクラウド認定資格の究極のトレーニングバンドル(TechRepublic Academy)

TechRepublic のチュートリアルライブラリでは、Kubernetes やその他のテクノロジーで発生する可能性のあるさまざまな問題を網羅しています。開発者プロジェクトを最大限に活用する方法について詳しくは、こちらの開発者向けチュートリアルライブラリをご覧ください。

次に読む:最高のプロジェクト管理ソフトウェア(TechRepublic)

Kubernetes での開発について詳しくは、TechRepublic Academy の以下のリソースをご覧ください。Docker
および Kubernetes 認定トレーニング バンドル、 
Kubernetes とクラウドの認定トレーニング バンドルの究極、
2022 DevOps クラウド エンジニアリング準備バンドル 

Tagged: