0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Урок

Чарты Helm и манифесты Kubernetes в CI/CD

Упаковывайте и версионируйте развёртывания Kubernetes с помощью чартов Helm, создавайте конфигурацию для каждого окружения и автоматизируйте выпуск чартов из GitHub Actions

«Чарты Helm и манифесты Kubernetes в CI/CD» — бесплатный урок CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CI/CD with GitHub Actions & DevOps Pipelines, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.

Проблема разрастания манифестов

Развёртывание в Kubernetes означает создание множества манифестов YAML: развёртываний, сервисов, ConfigMaps и входных ресурсов. Быстрое копирование этих манифестов для каждого окружения становится неуправляемым.

Helm решает эту проблему, упаковывая манифесты в повторно используемый версионируемый чарт.

Что такое Helm

Helm — менеджер пакетов для Kubernetes. Чарт — это набор шаблонизированных манифестов со значениями по умолчанию.

  • Chart.yaml — метаданные и версия чарта
  • values.yaml — конфигурация по умолчанию
  • templates/ — шаблоны манифестов

Структура чарта

Типичный каталог чарта выглядит так. Helm обрабатывает шаблоны с помощью значений и создаёт итоговый YAML для Kubernetes.

mychart/
  Chart.yaml
  values.yaml
  templates/
    deployment.yaml
    service.yaml

Шаблонизация с помощью значений

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

# templates/deployment.yaml
spec:
  replicas: {{ .Values.replicaCount }}
  image: {{ .Values.image.repository }}:{{ .Values.image.tag }}

Значения для каждого окружения

Храните отдельный файл значений для каждого окружения и передавайте его во время установки. В тестовом окружении может работать 1 экземпляр, а в рабочем — 5.

helm upgrade --install myapp ./mychart \
  -f values-prod.yaml \
  --namespace production

Установка и обновление

Команда helm upgrade --install идемпотентна: она устанавливает выпуск, если он ещё не существует, или обновляет его, если он уже существует.

Эта единая команда идеально подходит для CI/CD, поскольку работает и при первом, и при последующих развёртываниях.

Установка тега образа в CI

В среде непрерывной интеграции обычно передают тег только что собранного образа (часто SHA коммита) с помощью --set.

Так выпуск в Kubernetes связывается с точным артефактом, созданным вашим конвейером.

  - run: |
      helm upgrade --install myapp ./mychart \
        --set image.tag=${{ github.sha }}

Проверка чартов

Перед развёртыванием проверьте чарт с помощью helm lint и отобразите его с помощью helm template, чтобы заранее обнаружить ошибки YAML или шаблонизации.

  - run: helm lint ./mychart
  - run: helm template myapp ./mychart -f values-prod.yaml

Откаты с Helm

Helm отслеживает каждый выпуск как пронумерованную ревизию. Если развёртывание прошло неправильно, его можно мгновенно откатить.

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

helm history myapp
helm rollback myapp 3

Упаковка и публикация

Чарты можно упаковывать в архивы с указанием версии и отправлять в репозиторий чартов или реестр OCI — так же, как образы контейнеров.

Благодаря этому другие команды могут использовать Ваш чарт по версии.

helm package ./mychart
helm push myapp-1.2.0.tgz oci://registry.example.com/charts

Задание развёртывания Helm

Соберём всё вместе: пройдём аутентификацию в кластере, настроим Helm, а затем выполним обновление. Действие Azure setup-helm устанавливает CLI на исполнителе.

  - uses: azure/setup-helm@v4
  - run: |
      helm upgrade --install myapp ./mychart \
        -f values-prod.yaml \
        --set image.tag=${{ github.sha }} \
        --wait

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

Проверьте, насколько хорошо Вы поняли работу Helm в CI/CD.

Повторение

Вы научились развёртывать приложения Kubernetes с помощью Helm.

  • Чарты упаковывают шаблонные манифесты вместе с values.yaml
  • Файлы значений для каждой среды настраивают среду тестирования и рабочую среду
  • helm upgrade --install — идемпотентная команда CI для развёртывания
  • Ревизии обеспечивают мгновенные откаты, а чарты можно публиковать так же, как образы

Helm превращает необработанные манифесты в версионируемые и повторно используемые выпуски.

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

Урок «Чарты Helm и манифесты Kubernetes в CI/CD» бесплатный?

Да — полный текст урока «Чарты Helm и манифесты Kubernetes в CI/CD» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CI/CD with GitHub Actions & DevOps Pipelines, подпишись на CoddyKit PRO. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.

Чему я научусь в уроке «Чарты Helm и манифесты Kubernetes в CI/CD»?

Упаковывайте и версионируйте развёртывания Kubernetes с помощью чартов Helm, создавайте конфигурацию для каждого окружения и автоматизируйте выпуск чартов из GitHub Actions Ты практикуешь CI/CD with GitHub Actions & DevOps Pipelines с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CI/CD with GitHub Actions & DevOps Pipelines?

Предыдущий опыт не требуется. CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Чарты Helm и манифесты Kubernetes в CI/CD»?

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

Можно ли писать и запускать код в этом уроке CI/CD with GitHub Actions & DevOps Pipelines?

Да. Каждый урок CI/CD with GitHub Actions & DevOps Pipelines включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

  1. Сборка образов Docker с помощью Actions
  2. Отправка образов в реестры
  3. Развёртывание в Kubernetes с помощью Actions
  4. Чарты Helm и манифесты Kubernetes в CI/CD
← Назад к CI/CD with GitHub Actions & DevOps Pipelines