Не удаляется неймспейс в Kubernetes
После теста очередного софта в Kubernetes у меня не получилось удалить namespace этой утилиты.
Проблема была в том, что namespace оставался висеть в статусе Terminating
. Пришлось разбираться почему и как его удалить.
Причина
При удалении неймспейса кубер проверяет специальное поле spec.finalizers
в спецификации этого неймспейса. Если по какой-то причине указанный там ресурс нельзя удалить, то процесс подвисает в статусе Terminating
на всегда.
Как бороться
Вычитываем во временный файл спецификацию неймспейса:
kubectl get namespace <NAMESPACE> -o json > <NAMESPACE>.json
Открываем этот файл и ищем раздел spec.finalizers
. Если там указан kubernetes
, то смело его сносим оттуда.
Применяем исправленный манифест:
kubectl replace --raw "/api/v1/namespaces/<NAMESPACE>/finalize" -f ./<NAMESPACE>.json
Смотрим, что неймспейс спокойненько удалился:
kubectl get ns
В 99.999% случаев неймспейс больше не будет вас доставать.
Комментарии: