Назад к вопросам
Middle
109
questionbank
Как вы выполняете обновление чартов в Helm?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Обновление чартов в Helm выполняется командой helm upgrade.
Основные флаги, используемые при обновлении:
--install: Если релиз с указанным именем не существует, Helm установит его. Удобно для idempotency.--version <версия_чарта>: Указывает конкретную версию чарта для обновления. Если флаг не указан, используется последняя стабильная версия.--values <файл_значений>: Переопределяет значения по умолчанию вvalues.yaml, используя указанный файл. Можно использовать несколько раз.--set <ключ=значение>: Переопределяет значения по умолчанию прямо в командной строке. Удобно для небольших изменений.--namespace <пространство_имён>: Указывает пространство имён, где находится релиз.--atomic: Откатывает обновление, если оно завершилось неудачно (например, из-за проблем с развертыванием подов).--wait: Ожидает, пока все ресурсы релиза не станут готовыми перед объявлением об успешном обновлении.
Пример использования:
# Обновление релиза 'my-release' в пространстве имён 'default'
# с использованием новой версии чарта './mychart'
# и переопределением значения 'image.tag' из файла 'values.yaml'
helm upgrade my-release ./mychart --namespace default --values values.yaml --set image.tag=latest
Процесс обновления включает:
- Helm загружает указанную версию чарта.
- Применяет переопределенные значения (из файлов
--valuesи флагов--set). - Генерирует манифесты Kubernetes на основе шаблонов чарта и финальных значений.
- Отправляет эти манифесты в Kubernetes API сервер.
- Kubernetes выполняет rolling update для развернутых ресурсов (например, Deployment).
- При использовании
--atomic, если развертывание завершается неудачно, Helm автоматически выполняет откат к предыдущей рабочей версии релиза.
Helm сохраняет историю всех релизов, что позволяет откатывать изменения при необходимости с помощью команды helm rollback.