0Pricing
DevOps Bootcamp · Урок

Параметризация образа контейнера

Свяжите репозиторий и метку образа со значениями

«Параметризация образа контейнера» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Зачем делать образ настраиваемым

Жёстко заданный образ привязывает каждого пользователя к одной версии. Если связать образ со значениями, пользователи смогут выбрать нужные репозиторий и тег.

Разделите репозиторий и тег

По соглашению чарты хранят образ в двух полях: репозитории и теге. Раздельное хранение упрощает обновление версий.

# values.yaml
image:
  repository: nginx
  tag: "1.27"

Считывайте вложенные значения

Обращайтесь к вложенным ключам, соединяя их точками. Здесь .Values.image.repository открывает карту образа, которую Вы только что определили.

image: {{ .Values.image.repository }}

Объедините репозиторий и тег

Ссылка на образ состоит из репозитория, затем двоеточия и тега. Соберите её внутри шаблона, чтобы отрендерированная строка была одной корректной строкой.

image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"

Всегда заключайте тег в кавычки

Тег вроде 1.27 YAML может распознать как число. Заключайте теги в кавычки в значениях, чтобы они оставались строками и никогда не теряли завершающий ноль.

tag: "1.27.0"

Задайте разумный тег по умолчанию

Функция default подставляет резервное значение, если значение пусто. Часто в качестве тега по умолчанию используют appVersion чарта.

{{ .Values.image.tag | default .Chart.AppVersion }}

Сделайте политику загрузки настраиваемой

Позвольте пользователям управлять моментом повторной загрузки образа Kubernetes, сделав настраиваемой и imagePullPolicy. IfNotPresent — безопасное значение по умолчанию.

imagePullPolicy: {{ .Values.image.pullPolicy }}

Задайте политику загрузки по умолчанию

Задайте значение политики загрузки по умолчанию в values.yaml, чтобы установка работала без переопределений. При необходимости пользователи всё равно смогут его изменить.

image:
  pullPolicy: IfNotPresent

Полный блок контейнера

Теперь контейнер полностью управляется данными: образ и политика загрузки поступают из .Values.image, а в шаблоне не осталось заданных напрямую значений.

containers:
  - name: app
    image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
    imagePullPolicy: {{ .Values.image.pullPolicy }}

Переопределите значение во время установки

Пользователи изменяют одно вложенное значение с помощью --set. Точки в ключе напрямую соответствуют дереву значений, поэтому редактировать файлы не требуется.

helm install web . --set image.tag=1.28

Проверьте отрендерированный образ

Выполните рендеринг с переопределением, чтобы проверить работу связи от начала до конца. В строке образа должен отображаться выбранный Вами тег.

helm template web . --set image.tag=1.28

Быстрая проверка

Вы хотите установить другой тег образа, не редактируя файлы. Как это сделать?

Итоги: настраиваемый образ

Вы разделили образ на репозиторий и тег, добавили политику загрузки и позволили пользователям переопределять каждый параметр с помощью --set. Заключайте теги в кавычки для безопасности.

Часто задаваемые вопросы

Урок «Параметризация образа контейнера» бесплатный?

Да — полный текст урока «Параметризация образа контейнера» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Параметризация образа контейнера»?

Свяжите репозиторий и метку образа со значениями Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Параметризация образа контейнера»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Минимальный шаблон развёртывания
  2. Параметризация образа контейнера
  3. Добавление шаблона Service
  4. Установка и доработка чарта
← Назад к DevOps Bootcamp