https://github.com/kubernetes/kubernetes/issues/60807
https://kb.kasten.io/knowledge/how-to-debug-namespaces-that-are-stuck-terminating

Что делать, если неймспейс при удалении завис в состоянии Terminating?

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

Однако, если и после этого неймспейс не удалится, то нужно посмотреть на вывод этой команды. Там могут быть сообщения вида:

"status": {
  "phase": "Terminating",
  "conditions": [
    {
      "type": "NamespaceDeletionDiscoveryFailure",
      "status": "True",
      "lastTransitionTime": "2021-10-21T19:59:35Z",
      "reason": "DiscoveryFailed",
      "message": "Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request"
    },
    ...

Что означает, что не работают какие-то сервисы API. Для того, чтобы исправить - просто удаляем заклинивший сервис API:

kubectl delete apiservice v1beta1.metrics.k8s.io

И дальше - повторяем curl…

В самом крайнем случае - можно попробывать ЖЕСТКО перезаупстить все контейнеры кубера:

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