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
Enter your comment. Wiki syntax is allowed:
Q V R N U
 
  • linux_faq/kubernetes_delete_namespace_hung_in_terminating_state.txt
  • Last modified: 2021/07/13 22:27
  • by admin