Как управлять развертыванием тегов изображения руля - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть все наши приложения в диаграммах Kubernetes Helm, использующие:

# values.yaml

default:
  IMAGE_REPO: myorg
  IMAGE_NAME: api
  IMAGE_TAG: latest

Я понимаю, что для того, чтобы Helm узнал, ему необходимо повторно развернуть стручки (т. Е. Снять последнюю версию ) Я должен изменить IMAGE_TAG. Мой вопрос, как это удалось? Обновлять ли я вручную файл values.yaml при каждом развертывании, git коммит, git тянуть мастер, а затем запускать helm upgrade api --values values.yaml ./?

Или лучше просто оставить values.yaml на latest и обновить через командную строку, например:

helm upgrade api --values values.yaml ./ --set IMAGE_TAG=ab31f452

Ответы [ 2 ]

2 голосов
/ 08 февраля 2020

Использование git (99% времени)

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

Для сред разработки или моментальных снимков, которые не нужно воспроизводить, я иногда мог бы go с менее формальным методом helm выдвигать новые теги изображений по мере необходимости. Тем более, если у вас есть что-то вроде Дженкинса или любого другого работника, который отслеживает, когда и как все происходит.

Это очень зависит от среды, в которой запускается приложение. Оно может варьироваться от приложений, требующих аудита, на всем пути от разработчика до тестирования и развертывания в рабочей среде, где оно должно находиться в git, переходим к другому концу спектра бросающих вещей при производстве вручную (где вы в конечном итоге захотите это в git).

Я понимаю, что для того, чтобы Хелм узнал, он должен -развернуть модули (то есть вытащить последнее изображение) Мне нужно изменить IMAGE_TAG

Это не совсем правильно, kubernetes перепланирует модули при изменении ресурса spe c. Вы можете изменить аннотацию или метку на модуле c, и модули будут заменены. Тогда imagePullPolicy: Always можно установить в модуле c.

Тем не менее, не используйте это, чтобы положиться на :latest. Это укусит вас однажды.

0 голосов
/ 08 февраля 2020

Рекомендуемый тег изображения для производственной среды - это неизменяемые теги. Чтобы мы могли легко узнать, какая версия работает в кластере k8s. Также вы должны выполнить команду, как эта, потому что тег image является вложенным vales.

helm upgrade api --values values.yaml ./ --set **default.IMAGE_TAG**=ab31f452
...