Не удаляется неймспейс в 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% случаев неймспейс больше не будет вас доставать.

Поделиться: DiasporaTwitterFacebookLinkedInHackerNewsEmailReddit

Похожие записи:



Комментарии: