Чарты 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 — локальная установка не требуется.
Все уроки этого курса
- Сборка образов Docker с помощью Actions
- Отправка образов в реестры
- Развёртывание в Kubernetes с помощью Actions
- Чарты Helm и манифесты Kubernetes в CI/CD