Основы Helm
При развертывании, изменении версий и обновлении приложений необходимо убедиться, что у вас есть правильные версии библиотек и конфигураций программного обеспечения, чтобы приложения работали должным образом.
Предположим, что ваша команда разработчиков решает развернуть веб-сайт компании по магазину домашних животных в Kubernetes. В рамках процесса ваша команда создает файлы для развертывания, службы и ingress на основе YAML. Вы вручную жестко прописываете и поддерживаете информацию в каждом файле для каждой целевой среды. Однако сохранение трех файлов для каждой среды является громоздким и увеличивает сложность по мере роста приложения.
С помощью Helm можно упростить процесс развертывания приложения и избежать жестко закодированных переменных и параметров развертывания.
Что такое Helm?
Helm — это менеджер пакетов для Kubernetes, который объединяет все ресурсы приложения и сведения о развертывании в один пакет развертывания.
Вы можете рассматривать Helm как аналог менеджера пакетов Windows на Windows, менеджера пакетов APT (apt) на Linux или менеджера пакетов Homebrew на macOS. Укажите имя приложения, которое вы хотите установить, обновить или удалить, и Helm позаботится о процессе.
При использовании Helm вы не ограничиваетесь установкой одного приложения за раз. Helm позволяет создавать шаблонные файлы скриптов YAML, доступные для чтения, для управления развертыванием приложения. Эти файлы шаблонов позволяют указать все необходимые зависимости, сопоставление конфигурации и секреты, используемые для успешного развертывания приложения.
Helm использует четыре компонента для управления развертываниями приложений в кластере Kubernetes:
- Клиент Helm
- Диаграммы Helm
- Выпуски Helm
- Репозитории Helm
Что такое клиент Helm?
Клиент Helm установленный двоичный файл, отвечающий за создание и отправку файлов манифеста, необходимых для развертывания приложения Kubernetes. Клиент отвечает за взаимодействие между пользователем и кластером Kubernetes.
Клиент Helm доступен для всех основных операционных систем и установлен на клиентском компьютере. В Azure клиент Helm предварительно установлен в Cloud Shell и поддерживает все функции безопасности, идентификации и авторизации Kubernetes.
Заметка
В этом модуле предполагается использование Helm версии 3. Чтобы проверить версию Helm, запущенную на клиентском устройстве, можно выполнить команду helm version
. Если вы используете Helm версии 2, помните, что некоторые параметры команды в этом модуле будут отличаться.
Что такое диаграмма Helm?
Диаграмма Helm — это шаблонный пакет развертывания, описывающий связанный набор ресурсов Kubernetes. Он содержит все сведения, необходимые для сборки и развертывания файлов манифеста для приложения для запуска в кластере Kubernetes.
Диаграмма Helm состоит из нескольких файлов и папок для описания диаграммы. Некоторые компоненты являются обязательными, и некоторые из них являются необязательными. То, что вы хотите включить, основано на требованиях к конфигурации приложений.
В следующем списке описываются компоненты файлов и папок чарта Helm с необходимыми элементами, выделенными жирным шрифтом.
Файл / папка | Описание |
---|---|
Chart.yaml |
Файл YAML, содержащий сведения о диаграмме. |
values.yaml |
Значения конфигурации по умолчанию для диаграммы. |
templates/ |
Папка, содержащая шаблоны развертывания для диаграммы. |
LICENSE |
Файл обычного текста, содержащий лицензию на диаграмму. |
README.md |
Файл markdown, содержащий инструкции по использованию диаграммы. |
values.schema.json ** |
Файл схемы для применения структуры к файлу values.yaml. |
charts/ |
Папка, содержащая все подсхемы основной диаграммы. |
crds/ |
Определения пользовательских ресурсов. |
templates/Notes.txt |
Текстовый файл, содержащий заметки об использовании шаблона. |
Что такое релиз Helm?
Выпуск Helm приложения или группы приложений, развернутых с помощью диаграммы. При каждой установке чарта в кластере создается новый экземпляр приложения. Каждый экземпляр имеет имя выпуска, которое позволяет вам взаимодействовать с этим конкретным экземпляром приложения.
Например, предположим, что вы установили два экземпляра Nginx в кластер Kubernetes с помощью диаграммы. Позже вы решили обновить первый экземпляр Nginx, но не второй. Так как два выпуска отличаются, вы можете обновить первый выпуск, не влияя на второй.
Что такое репозиторий Helm?
Репозиторий Helm — это выделенный HTTP-сервер, который хранит сведения о диаграммах Helm. Сервер размещает файл, описывающий диаграммы и где скачать каждую диаграмму.
Проект Helm содержит множество общедоступных диаграмм, и многие репозитории существуют, из которых можно повторно использовать диаграммы. Репозитории Helm упрощают обнаружение и повторное использование пакетов Helm.
Преимущества использования Helm
Helm представляет ряд преимуществ, которые упрощают развертывание приложений и повышают производительность в жизненном цикле разработки и развертывания облачных приложений. С помощью Helm у вас есть версии приложений, которые:
- Повторяемый
- Достоверный
- Управляемый в различных и сложных средах, и
- Повторное использование в разных командах разработчиков.
Диаграмма Helm стандартизирует развертывание приложения с помощью упакованой логики шаблона, параметризованной заданными входными значениями. Этот проект пакета на основе шаблона обеспечивает не зависящий от среды подход к развертыванию и совместному использованию облачных приложений.