Comments 6
— показывает ли Helm ошибку при падении выката/деплоя?
— откатывает ли Helm назад деплой при падении деплоя/выкатки?
По поводу ошибок и логирования
Helm не дожидается, когда приложение начинает функционировать, все ресурсы переходят в состояние Running
: при успешном выполнении install или upgrade, т.е. имея release в состоянии success, helm не гарантирует, что ресурсы приложения успешно выкатились (к примеру, нет ошибок типа ImagePullError).
На текущий момент состояние success говорит о том, что манифесты применились успешно. Если опустить множество деталей, то можно провести аналогию с командой kubectl apply
.
Что касается логирования, то сейчас в helm оно "как-то" поддерживается для Hook-ов. Hook — механизм helm, который позволяет выполнять операции, привязываясь к различным этапам жизненного цикла релиза. К примеру, можно сделать дамп базы перед удалением или накатить фикстуры при инсталяции. Подробнее про них можно почитать здесь.
"Как-то" нас не устраивает, поэтому мы используем собственное решение при выкате приложений с dapp и параллельно пытаемся добавить этот функционал в helm (почитать можно в соответствующем issue).
Что касается отладки, то состояние всех ресурсов релиза можно посмотреть, выполнив команду helm status
, а далее уже использовать kubectl logs
.
Чего-то существенного от ошибок и сопутствующего вывода helm ждать не стоит.
Rollback
Helm позволяет откатываться до определённой ревизии релиза. Список всех ревизий можно посмотреть, выполнив команду helm history
, а откатить версию командой helm rollback
.
Helm не дожидается, когда приложение начинает функционировать, все ресурсы переходят в состояние Running: при успешном выполнении install или upgrade, т.е. имея release в состоянии success, helm не гарантирует, что ресурсы приложения успешно выкатились (к примеру, нет ошибок типа ImagePullError).
Этим параметром регулируется чего ждать, а чего не ждать.
Configure Liveness and Readiness Probes
Да, по задумке helm должен следить за выполнением соответствующих probe при использовании опции --wait
:
--wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout
Но должным образом сейчас это не работает. Поддерживаются не все ресурсы и не все версии API. Да и по самой реализации есть вопросы.
Kubernetes 1.12: обзор основных новшеств