Развертывание приложения в Azure AKS с помощью HELM

С ростом популярности контейнеров при разработке приложений возникает ряд дополнительных проблем, связанных с необходимостью управления тысячами контейнеров, на которых выполняются сложные корпоративные приложения. Управление такими контейнерами в нескольких средах развертывания — сложная задача. Чтобы смягчить эту ситуацию, были введены инструменты оркестрации контейнеров.
Кубернетес
Kubernetes — это система оркестрации контейнеров с открытым исходным кодом для автоматизации развертывания программного обеспечения, масштабирования и управления контейнерными приложениями. Безудержный успех Kubernetes привел к созданию экосистемы инструментов, упрощающих разработку и развертывание приложений. Kubernetes был создан Google и в настоящее время поддерживается Cloud Native Computing Foundation (CNCF).
Каждый из трех ведущих облачных провайдеров управляет предложениями Kubernetes для своих облачных клиентов. В этом посте мы обсудим предоставляемую Azure службу Kubernetes, которая называется Azure Kubernetes Service (AKS).
Введение в службу Azure Kubernetes (AKS)
В 2018 году Azure выпустила полностью управляемую службу оркестровки контейнеров с открытым исходным кодом под названием AKS. Он упрощает развертывание управляемого кластера Kubernetes в Azure, перекладывая операционные издержки на Azure. Являясь размещенной службой Kubernetes, Azure выполняет критически важные задачи, такие как мониторинг работоспособности и обслуживание. Поскольку мастера Kubernetes управляются Azure, мы управляем и обслуживаем только узлы агентов.
Некоторые из преимуществ запуска экземпляров Kubernetes в AKS:
- Azure Active Directory для управления доступом на основе ролей (RBAC)
- Azure Monitor для Kubernetes и мониторинг контейнеров
- Сеть Azure для упрощения оркестровки и контейнерной сети
- Политика Azure для управления кластерами, модулями, пространствами имен и входом AKS.
- Хранилище Azure для нужд хранения в кластерах и контейнерах AKS.
Поскольку платформа и экосистема Kubernetes продолжали расти, развертывание нескольких файлов конфигурации Kubernetes (YAML) в нескольких кластерах и нескольких ресурсов для оркестровки внутри Kubernetes усложняло задачу. Существует несколько инструментов диспетчера пакетов, которые могут помочь упростить процесс. Один из них называется HELM.
«HELM — это менеджер пакетов Kubernetes. Это помогает вам управлять приложениями Kubernetes».
Развертывания
В этом посте мы обсудим два подхода к развертыванию приложений в кластере AKS с помощью HELM. Один запускает helm вручную с помощью CLI, а другой — через конвейер.
Шлем с помощью CLI
Предполагая, что указанные ниже предварительные условия уже установлены и настроены. Создан кластер AKS (его можно создать с помощью IaC или az CLI), установлен kubectl и установлен Helm 3.4 или более поздней версии.
Добавьте репозиторий bitnami, выполнив следующие команды.

Установите приложение моего выпуска на AKS с помощью HELM

Вывод будет:

После того, как вы увидите success
сообщение, вы можете убедиться, что модули my-release запущены, с помощью следующей команды:

Чтобы получить доступ к URL-адресу администратора моего выпуска, выполните следующую команду, чтобы найти запись внешнего IP- адреса.

Раз внешний. IP-адрес находится Перейти кhttp://<EXTERNAL_IP>/admin
Шлем с помощью Pipeline
Мы можем использовать любой стандартный конвейер. Мы используем конвейер Azure DevOps (ADO) для автоматического развертывания приложений с помощью HELM и используем ACR для хранения изображений чата для корпоративных приложений.
Предпосылки: В качестве предварительного условия доступны следующие компоненты:
- Подписка Azure
- Кластер АКС
- Настройка конвейера ADO
- Субъект службы кластера AKS
- ACR для хранения версии диаграммы



Чтобы получить доступ к URL-адресу администратора моего выпуска, выполните следующую команду, чтобы найти запись внешнего IP- адреса.

Как только внешний IP-адрес будет найден, перейдите кhttp://<EXTERNAL_IP>/admin
Заключение
В современном мире ошеломительный успех Kubernetes привел к созданию экосистемы инструментов, упрощающих разработку и развертывание сложных приложений. AKS и Helm — два примера тех инструментов, которые помогают в развертывании и управлении сложными приложениями Kubernetes.