В этом кратком руководстве показано, как удалить ресурсы пространства имен, застрявшие в состоянии завершения в вашем кластере Kubernetes.
Хотя я не буду вдаваться в подробности, ПОЧЕМУ возникают эти проблемы, я покажу вам быстрый способ их решения.
Проблема
Возможно, у вас уже было это несколько раз, и вы просто сошли с ума. Вы удаляете ресурс, и Kubernetes переводит его в состояние завершения.
Но даже после ожидания в течение нескольких минут или часов ничего не происходит, а ресурс все еще есть.
На следующем скриншоте вы можете увидеть такой ресурс. В моем случае пространство имен flux-system
. Даже когда я явно использую команду delete ns
, она никогда не завершится и просто застрянет.
Кстати, не удивляйтесь, что на скриншоте вы видите mkctl
вместо kubectl
. Это просто псевдоним, который я использую для доступа к моему локальному кластеру MicroK8s. Он использует kubectl
под капотом.
Спасение
К счастью, есть простой способ быстро избавиться от зависшего ресурса.
Во-первых, вы должны сбросить определение ресурса в файл в вашей локальной системе:
kubectl get ns flux-system -o json > tmp_ns.json
Затем вы можете использовать редактор по вашему выбору (в данном случае это Vim) и удалить запись kubernetes
из массива spec.finalizers
.
Затем вы должны указать Kubernetes применить измененную конфигурацию JSON replace
способом:
kubectl replace --raw "/api/v1/namespaces/flux-system/finalize" -f ./tmp_ns.json
Но убедитесь, что вы не пропустите замену пути к ресурсу. Маловероятно, что вы также захотите удалить пространство имен flux-system
из своей системы. ;-)
На следующем снимке экрана вы можете увидеть команду replace
в действии. Целая стена текста в терминале.
Давайте немного увеличим нижнюю часть терминала. Как вы можете видеть на следующем скриншоте, я снова попытался получить пространство имен flux-system
из кластера Kubernetes, но ресурс больше не может быть найден. Оно удалено... УРА!!!
Хотите связаться?
Если вы хотите связаться со мной, пожалуйста, напишите мне в LinkedIn.
Кроме того, не стесняйтесь проверить мои книжные рекомендации 📚.