Как удалить сущности (ресурсы), развернутые с помощью Helm?

«Как удалить сущности (ресурсы), развернутые с помощью Helm?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основная команда для удаления релиза Helm и всех связанных с ним ресурсов из кластера:

helm uninstall <RELEASE_NAME> -n <NAMESPACE>

Ключевые опции и сценарии:

  • Сохранение истории для отката:

    helm uninstall <RELEASE_NAME> --keep-history

    История релиза останется в helm list --all, что позволяет выполнить helm rollback.

  • Принудительное удаление (если зависло):

    helm uninstall <RELEASE_NAME> --no-hooks --cascade=background

    --no-hooks пропускает хуки удаления, --cascade=background передает удаление ресурсов фоновому сборщику мусора Kubernetes.

  • Предварительная проверка: Перед удалением можно увидеть, какие именно ресурсы будут удалены:

    helm get manifest <RELEASE_NAME> | kubectl get -f - -n <NAMESPACE>

Важно: Удаление через helm uninstall — предпочтительный способ, так как он учитывает зависимости и хуки, определенные в чарте. Прямое удаление ресурсов через kubectl delete может оставить "мусор".