Назад в блог

Установка программного обеспечения на Kubernetes с помощью пакетного менеджера Helm 3 в Windows

Установка программного обеспечения на Kubernetes с помощью пакетного менеджера Helm 3 в Windows

Если вы пришли из сферы разработки, вы, вероятно, знакомы с термином «пакетный менеджер» (Package Manager). Пакетные менеджеры позволяют устанавливать зависимости, обновлять и откатывать версии и так далее. В этом руководстве мы рассмотрим очень популярный пакетный менеджер для Kubernetes, под названием Helm.

Helm помогает управлять приложениями Kubernetes. С помощью Helm вы можете определить приложение Kubernetes, указав метаданные приложения, зависимости и конфигурации. Helm также может устанавливать приложения в Kubernetes, а также обновлять и откатывать их версии. Наконец, вы можете поделиться своим приложением с другими, используя файл Helm. В этом руководстве мы покажем вам, как установить Helm 3, а также настроить, обновить, откатить и управлять чартами и релизами в ОС Windows.

Давайте начнем!

Предварительные требования

Прежде чем мы начнем руководство, вам необходимо убедиться, что у вас установлены следующие компоненты:

  • Если у вас не настроен Kubernetes на Windows, самый простой способ начать — использовать Docker Desktop. Перейдите на https://www.docker.com/products/docker-desktop. Скачайте и установите Docker Desktop. В этом руководстве мы будем работать с Windows. Поэтому нам понадобится установить WSL 2 Backend. Это подсистема Linux для Windows, которая обеспечивает поддержку Docker:

Docker Desktop Kubernetes with Helm

Как только Docker Desktop будет готов, перейдите в Settings -> Kubernetes, и отметьте опцию Enable Kubernetes:

Docker Settings Kubernetes with Helm

Enable k8s Kubernetes with Helm

Чтобы проверить, все ли работает правильно, откройте терминал или PowerShell (в зависимости от того, что вы используете) и введите следующую команду:

Если вы видите следующий вывод, значит, все готово к работе:

kubectl Kubernetes with Helm

Кроме того, если вы решите работать на Ubuntu, вы можете воспользоваться нашим подробным руководством: Как установить и использовать Kubernetes на Ubuntu 20.04.

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

  • Чарты

 YAML-файлы Kubernetes упаковываются в чарты Helm.

  • Репозитории Helm

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

  • Tiller

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

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

Теперь мы готовы начать!

Шаг 1. Установка Helm 3

Установка Helm 3 — это простой процесс. Релизы доступны на странице Helm на GitHub. Вы можете скачать нужный релиз в зависимости от выбранной вами ОС. В этом руководстве мы будем использовать ОС Windows, поэтому для Windows выполните следующие шаги:

  1. На странице GitHub скачайте исполняемые файлы Helm для Windows.

  2. После завершения загрузки вы найдете ZIP-архив в папке Загрузки или там, куда вы его скачали.

  3. Затем переместите этот архив в удобное место и распакуйте его. Вы должны найти файл helm.exe в распакованном содержимом:
    helm_binary

  4. Скопируйте путь к папке и добавьте его в переменную PATH в системных переменных среды.

  5. После этого откройте терминал и введите следующую команду:

Если вы видите следующий вывод, значит, установка Helm завершена. После этого вы можете перейти к следующим шагам:

helm

Шаг 2. Настройка репозиториев и установка чарта Helm

Helm поддерживает доступ к репозиториям и управление ими. В репозиториях хранятся чарты Helm. Изначально у Helm нет собственного репозитория. Вместо этого Helm поощряет менеджеров и DevOps-специалистов создавать свои собственные репозитории. Это означает, что если вы хотите использовать MongoDB в своем кластере Kubernetes, вам придется самостоятельно добавить его в репозиторий Helm. Чтобы помочь вам найти репозитории, вы можете использовать Artifact.io. Это каталог с открытым исходным кодом для всех чартов Helm, управляемый CNCF.

Ниже мы покажем вам, как настроить репозиторий, а также скачать и установить программное обеспечение. В качестве примера мы возьмем установку MongoDB. Предположим, вам нужно установить MongoDB в ваш кластер Kubernetes. Для установки выполните следующие шаги:

  1. Сначала перейдите на https://artifacthub.io.

  2. Затем выполните поиск по запросу MongoDB. После поиска вы увидите, что доступно множество вариантов. Тот, который нас интересует, — это MongoDB by Bitnami:
    search_mongodb

  3. Когда поиск завершится, вы увидите различные варианты. Напротив каждого чарта вы можете увидеть издателя, версию и другую соответствующую информацию. Как только вы найдете нужный чарт, вам нужно выбрать его. Здесь мы нажимаем на MongoDB by Bitnami:
    select_mongodb

  4. Теперь фактически может начаться техническая часть. Если вы посмотрите на общее описание, то увидите, что там есть хорошее руководство для всех, кто хочет установить любую из служб. Вы можете ознакомиться с различными опциями, конфигурациями, параметрами, тем, как удалить чарт, и всем остальным, о чем вам может понадобиться информация. Найдите кнопку Install и нажмите ее:
    mongodb_install Kubernetes with Helm

  5. Вот все, что вам нужно для установки MongoDB. Сначала вам нужно добавить репозиторий и затем установить чарт. Чтобы добавить репозиторий, откройте терминал и введите команду:

Вы увидите следующий вывод:

repo_add_bitnami

Теперь, когда репозиторий настроен, вам нужно установить чарт. Скопируйте команду из диалогового окна и запустите ее:

Как только процесс завершится, все будет готово для работы с MongoDB.

Шаг 3: Управление релизами

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

  • Как обновить приложение

Предположим, в вашем values.YAML файле вы указываете, что вам необходимо запустить два экземпляра приложения. Это может быть связано с тем, что ваше приложение должно быть высокодоступным. Но позже вы понимаете, что приложению необходимо иметь три экземпляра. Без Helm вам придется сначала остановить приложение, а затем настроить и развернуть его заново. С помощью Helm вы можете сначала внесить изменения в values.YAML файл, а затем просто выполнить команду ниже. В каталоге, где находятся файлы Helm, выполните следующую команду:

  • Как откатить релиз

Теперь предположим, что ваш релиз сломался. Возможно, вы настроили неправильные номера портов или пути. Чтобы откатиться к любой предыдущей версии, все, что вам нужно сделать, это выполнить команду ниже, и тогда Helm вернет релиз к предыдущей версии:

Helm позаботится обо всех релизах и версионировании. Это одно из самых больших преимуществ использования Helm с Kubernetes. Чтобы увидеть все релизы любого приложения, выполните команду ниже в каталоге, содержащем чарты Helm и файлы YAML:

Шаг 4: Создание собственного чарта

Наконец, теперь, когда вы освоились с Helm и понимаете, как он работает, пришло время создать свой собственный чарт. Создав свой собственный чарт, вы сможете легко распространять свое приложение, а также размещать его в любом репозитории. Создание чарта — довольно простой процесс, если вы будете следовать шагам, которые мы опишем ниже. Сначала откройте терминал и выполните команду ниже:

Это создаст каталог с указанным вами именем. Мы используем имя my-app. Давайте посмотрим на содержимое папки:

Вы получите следующую структуру:

Вот краткое описание содержимого в выводе:

  • папка charts – используется для добавления зависимых чартов.
  • папка templates – конфигурация, которая будет развернута в кластере.
  • YAML-файл – схема структуры чарта Helm.
  • YAML-файл – информация о форматировании для настройки чарта.

Затем выполните следующие шаги для установки и настройки вашего чарта:

  • Настройка образа и его загрузки (pull)

Откройте values.YAML файл. Найдите здесь узел image. Затем вы можете настроить его по своему усмотрению. Возможные значения: IfNotPresent, Always, Latest. Полный набор значений можно найти в официальной документации.

  • Переопределение имени чарта

Этот шаг необязателен, поэтому при желании вы можете его пропустить:
override

  • Имя службы

Откройте values.YAML файл и найдите serviceName. Затем добавьте желаемое имя. Хорошо иметь подготовленное имя перед установкой чарта:
service_name

  • Установка чарта

Наконец, для установки чарта выполните следующую команду:

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

Почему разработчики любят Helm

Helm набирает популярность среди разработчиков и DevOps-специалистов, которым время от времени приходится запускать и останавливать развертывания. Вот некоторые из основных преимуществ Helm:

  1. Helm упрощает процесс развертывания. Он не требует изучения чего-то нового, скорее, существующие YAML-развертывания становятся легко настраиваемыми для пользователя.

  2. Вместо частого изменения конфигурации, например, количества кластеров или портов, Helm делает ее легко настраиваемой. Все, что нужно сделать пользователю, — это обновить значения в values.YAML файле.

  3. Helm позволяет делиться приложением с другими пользователями, упаковывая его в репозитории.

Заключение

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

Чтобы еще больше расширить свои знания о Kubernetes и его возможностях, вы можете ознакомиться с другими руководствами в нашем блоге:

Приятной работы!

author

Pranay Kapgate

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.