Эта статья расскажет о введении, основах и создании Helm Chart.


Предпосылки ✅

  • Я предполагаю, что вы понимаете основы кластера Kubernetes.

Будучи сказано, что. Давайте начнем!


Введение 💡

Шлем широко известен как «менеджер пакетов для Кубернетес«.
Helm Charts помогают определить, установить и обновить даже самое сложное приложение Kubernetes. Диаграммы легко создавать, верифицировать, делиться ими и публиковать — так что начните использовать Helm и перестаньте копировать и вставлять. Это CNCF Проект.
Считай так же, как подходящий, доморощенныйили же пакман какой-нибудь популярной ОС.


Цель шлема ✨

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

Для Helm есть три важных понятия:

  • Диаграмма — это набор информации, необходимой для создания экземпляра приложения Kubernetes.
  • Конфигурация содержит информацию о конфигурации, которую можно объединить в упакованную диаграмму для создания выпускаемого объекта.
  • Релиз — это работающий экземпляр диаграммы в сочетании с определенной конфигурацией.


Компоненты ⚙️

Helm — это исполняемый файл, который состоит из двух отдельных частей:

  • Хелм-клиент это клиент командной строки для конечных пользователей. Клиент отвечает за разработку локальных диаграмм, управление репозиториями и многое другое.

  • Библиотека Хелма предоставляет логику для выполнения всех операций Helm. Он взаимодействует с сервером API Kubernetes и обеспечивает установку диаграмм в Kubernetes, предоставление объекта последующего выпуска, а также обновление и удаление диаграмм посредством взаимодействия с Kubernetes.

Клиент и библиотека Helm написаны на Идти язык программирования.
Библиотека использует клиентскую библиотеку Kubernetes для связи с Kubernetes. В настоящее время эта библиотека использует ОТДЫХ+JSON. Он хранит информацию в секретах, расположенных внутри Kubernetes. Ему не нужна его база данных. Файлы конфигурации, по возможности, пишутся в YAML.


Штриховка диаграммы Helm 🐣

Скажем, я хочу построить диаграмму Helm для проекта под названием CircuitVerse


1. Создайте диаграмму руля

Откройте каталог в своем терминале и введите команду:

helm create

Шлем Golang Kubernetes

Это создает шаблон с примерами файлов, которые вы можете изменить, чтобы построить свою собственную диаграмму. Эта команда создает пару файлов в папке.

Папка начнет выглядеть так по структуре:
Шлем Golang Kubernetes


2. Обновление значений для нашего проекта

Этот файл объявляет переменные для передачи в шаблоны. Мы изменим файл, чтобы включить наш образ Docker, размещенный в нашем реестре контейнеров, тег, имя службы, порты, тип, значения базы данных и другие параметры в соответствии с требованиями.
Настройте pullPolicy для диаграммы. Возможны три значения параметра pullPolicy:

  • Always – Извлекает образ при каждом перезапуске или развертывании.
  • Latest — Вытягивает самую последнюю доступную версию.
  • IfNotPresent – Загружает новую версию образа, если ее нет в кластере. Если пользователь вашей диаграммы хотел изменить конфигурацию по умолчанию, он мог предоставить переопределения непосредственно в командной строке.

Образец значений.yaml:
Шлем Golang Kubernetes


3. Настройка файла шаблона

Самая важная часть головоломки — это templates/каталог. Здесь Helm находит определения YAML для ваших служб, развертываний и других объектов Kubernetes. Этот файл содержит инструкции по запуску контейнера приложения. Мы обновим значения в соответствии с требованиями.
Теперь наша диаграмма Helm имеет свои значения и правильные конфигурации в service.yaml, на котором мы можем протестировать диаграмму локально. миникуб или же Добрый кластер. Мы будем использовать команду:

helm install <full name override> <chart name>/ --values <chart name>/values.yaml


4. Публикация диаграммы Helm

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


Ссылки 📚

Я добавлю ссылки на большинство тем, если вы хотите узнать о них больше:

Спасибо, что прочитали мою статью 🙂