0
0

More than 1 year has passed since last update.

KubernetesでnamespaceがTerminatingのまま消えない時

Posted at

namespaceが消えない

sock-shopを使っていたら,不具合が起きたのでnamespaceごと削除した時,以下のエラーが出力された!

:~$ ks delete -f complete-demo.yaml
Warning: deleting cluster-scoped resources, not scoped to the provided namespace
namespace "sock-shop" deleted

deleted以降何も表示されず仕方なく中断をすると
以下のような状態になる

~/sock-shop/microservices-demo/deploy/kubernetes$ kubectl get ns
NAME                 STATUS        AGE
default              Active        38d
kube-node-lease      Active        38d
kube-public          Active        38d
kube-system          Active        38d
prometheus           Active        124m
sock-shop            Terminating   93m
system-upgrade       Active        38d

「monitoring」と「sock-shop」がterminatingのままになっている.
これを削除しないと新規の同じnamespaceが作成できない.

削除方法

削除方法は2通り考えられる.

  1. terminatingをひたすら待つ
  2. kubernetesの設定をいじる.

kubernetesの設定をいじる

https://www.redhat.com/sysadmin/troubleshooting-terminating-namespaces
を参考に作業を行う!

行ったコマンド
削除したいnamespceをjsonファイルに書き込む

$ kubectl get namespace ${NAMESPACE} -o json > tmp.json

エディターでtmp.jsonファイルを編集し,finalizer配列のkuberntesを削除

$ vi tmp.json

kubernetes APIサーバへのプロキシを開放する←後の作業でcurlコマンドを実行するためバックグラウンドで実行

$ kubectl proxy &

反映させるために以下のコマンドを実行

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0