Почему выбирают Helm или Kubernetes для управления инфраструктурой
Что проверяют
Заметите ли вы, что в вопросе подменены сущности. Helm и Kubernetes не альтернативы: первый работает поверх второго. Спокойно поправить постановку и объяснить разницу это и есть правильный ответ.
Как отвечать
Разделите уровни:
- Kubernetes это оркестратор контейнеров. Вы описываете желаемое состояние, контроллеры приводят кластер к нему и удерживают: перезапуск упавших подов, выкатка новой версии, масштабирование, обнаружение сервисов;
- Helm это менеджер пакетов и шаблонизатор манифестов. Чарт плюс файл значений дают одно описание на все среды, а установка превращается в релиз с номером ревизии и возможностью отката;
- соседний вариант в той же нише это
kustomizeс наложением патчей без шаблонов, а поверх обоих обычно ставят инструмент, который сам применяет состояние из репозитория; - инфраструктура под кластером (сети, узлы, управляемые базы) описывается отдельным инструментом, Helm туда не лезет.
Разработчику на Python полезно назвать, что именно выносится в значения чарта: образ и тег, переменные окружения, лимиты ресурсов, пробы готовности и живости, число реплик. А миграции схемы оформляются отдельной задачей или инициализирующим контейнером, а не командой в старте приложения.
Где спотыкаются
Отвечают буквально и начинают выбирать между Helm и Kubernetes. Собеседник ждал, что вы поправите вопрос.
Второе: считают откат волшебной кнопкой. Возврат к прошлой ревизии релиза вернёт манифесты, но не данные: применённая миграция базы никуда не денется, и совместимость схемы со старым кодом надо продумывать заранее.
Третье: складывают в шаблоны логику и секреты. Условия и циклы быстро делают чарт нечитаемым, значения без схемы проверки ломаются молча, а пароль, попавший в репозиторий, остаётся в истории навсегда.