This is an old revision of the document!
https://github.com/kubernetes/kubernetes/issues/60807
Что делать, если неймспейс при удалении завис в состоянии Terminating?
- Нужно попытаться отредактировать его и удалить finalizers (в том числе и из спецификации). Например так:
kubectl patch ns BAD_NAMESPACE -p '{"metadata":{"finalizers":null}}'
- Если это не помогло (finalizers вернулись а место после удаления), то нужно сделать так:
kubectl get namespace BAD_NAMESPACE -o json > tmp.json
Отредактировать файлик tmp.json, удалив из него finalizers, а затем применить его.
Для этого - проксируем API на локальный порт:
sudo -E kubectl proxy --port=8080
И затем финализируем удаление неймспейса:
curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json https://localhost:8080/api/v1/namespaces/BAD_NAMESPACE/finalize
systemctl stop kubelet.service for item in `ctr -n k8s.io tasks ls | awk '{print $1}'`; do ctr -n k8s.io tasks kill $item; done for item in `ctr -n k8s.io containers ls | awk '{print $1}'`; do ctr -n k8s.io containers rm $item; done ctr -n k8s.io tasks ls ctr -n k8s.io containers ls systemctl start kubelet.service
Discussion