Helm — must-have инструмент для деплоя в Kubernetes. Но даже опытные инженеры наступают на одни и те же грабли, особенно в проде. Разберём, какие ошибки чаще всего приводят к падениям и багам.
🔸 1.
helm upgrade без флага --atomicБез
--atomic Helm не откатывает релиз при ошибке — в кластере остаётся полусломанное состояние.Решение: всегда используйте
--atomic на проде:
helm upgrade my-app ./chart --atomic --install
🔸 2. Забытый
values.yaml с тестовыми значениямиНередко инженеры коммитят
values.yaml с включёнными debug-логами, выключенным HPA и отключённым SSL.Решение:
* Разделяй values по окружениям (
values-prod.yaml, values-staging.yaml)* Используй
.gitignore для временных файлов* Применяй валидацию с helm-schema-gen
🔸 3. Не pinned зависимости в
Chart.yamlЕсли чарты-зависимости подтягиваются без фиксации версий (
version: ^1.2.3), то обновления могут неожиданно всё сломать.Решение:
Фиксируй зависимости чётко:
version: 1.2.3 и контролируй обновления вручную.🔸 4. Отсутствие pre-upgrade и post-upgrade хуков
Если приложение требует миграций БД или прогрева кэша, а хуки не заданы — велика вероятность получить нерабочий релиз.
Решение:
Определи хуки в
templates/hooks.yaml:
apiVersion: batch/v1
kind: Job
metadata:
annotations:
"helm.sh/hook": pre-upgrade
🔸 5. Helm secrets хранятся в чистом виде в Git
Распакованный
secrets.yaml в Git — это инцидент.Решение:
* Используй helm-secrets с
sops* Шифруй
secrets.yaml и расшифровывай только при деплое:
helm secrets upgrade my-app -f secrets.enc.yaml
✅ Вывод:
Helm — мощный, но не прощающий ошибок инструмент. Настрой atomic деплой, следи за values и зависимостями, автоматизируй pre/post-хуки и защищай секреты. Это минимальный чеклист для прод-готовности.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
