Helm — must-have инструмент для деплоя в Kubernetes. Но даже опытные инженеры наступают на одни и те же грабли, особенно в проде. Разберём, какие ошибки чаще всего приводят к падениям и багам.

🔸 1. helm upgrade без флага –atomic

Без –atomic Helm не откатывает релиз при ошибке — в кластере остаётся полусломанное состояние.

Решение: всегда используйте –atomic на проде:

BASH
helm upgrade my-app ./chart --atomic --install
Нажмите, чтобы развернуть и увидеть больше

🔸 2. Забытый values.yaml с тестовыми значениями Нередко инженеры коммитят values.yaml с включёнными debug-логами, выключенным HPA и отключённым SSL.

Решение:

🔸 3. Не pinned зависимости в Chart.yaml

Если чарты-зависимости подтягиваются без фиксации версий (version: ^1.2.3), то обновления могут неожиданно всё сломать.

Решение:

Фиксируй зависимости чётко: version: 1.2.3 и контролируй обновления вручную.

🔸 4. Отсутствие pre-upgrade и post-upgrade хуков

Если приложение требует миграций БД или прогрева кэша, а хуки не заданы — велика вероятность получить нерабочий релиз.

Решение:

Определи хуки в templates/hooks.yaml:

YAML
apiVersion: batch/v1

kind: Job

metadata:

  annotations:

    "helm.sh/hook": pre-upgrade
Нажмите, чтобы развернуть и увидеть больше

🔸 5. Helm secrets хранятся в чистом виде в Git

Распакованный secrets.yaml в Git — это инцидент.

Решение:

BASH
helm secrets upgrade my-app -f secrets.enc.yaml
Нажмите, чтобы развернуть и увидеть больше

helm secrets upgrade my-app -f secrets.enc.yaml

✅ Вывод:

Helm — мощный, но не прощающий ошибок инструмент. Настрой atomic деплой, следи за values и зависимостями, автоматизируй pre/post-хуки и защищай секреты. Это минимальный чеклист для прод-готовности.

Авторские права

Автор: Vasiliy Fakunin

Ссылка: https://notes.melancholic.tech/posts/helm-%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B5-%D1%81%D0%BB%D0%BE%D0%BC%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B4-5-%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B0%D1%8E%D1%82-%D0%B2%D1%81%D0%B5/

Лицензия: CC BY-NC-SA 4.0

Использование материалов блога разрешается при условии: указания авторства/источника, некоммерческого использования и сохранения лицензии.

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша