Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Helm — это средство упаковки с открытым кодом, которое помогает установить приложения Kubernetes и управлять их жизненным циклом. Как и диспетчеры пакетов Linux, такие как APT и Yum, Helm используется для управления чартами Kubernetes, которые представляют собой пакеты предварительно настроенных ресурсов Kubernetes.
В этом кратком руководстве вы используете Helm для упаковки и запуска приложения в AKS. Сведения об установке существующего приложения с помощью Helm см. в статье "Установка существующих приложений с помощью Helm" в AKS.
Предварительные условия
- Подписка Azure. Если у вас нет подписки Azure, можно создать учетную запись free.
- Azure CLI или Azure PowerShell.
- Установленный Helm версии 3.
Создайте реестр контейнеров Azure
Вам нужно хранить образы контейнеров в Реестр контейнеров Azure (ACR), чтобы запустить приложение в кластере AKS с помощью Helm. Имя реестра должно быть уникальным в Azure и содержать 5–50 буквенно-цифровых символов. Разрешены только строчные символы. SKU Базовый — это оптимизированная по стоимости точка входа для целей разработки, обеспечивающая баланс ресурсов хранения и пропускной способности.
Создайте группу ресурсов Azure с помощью команды create az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.
az group create --name myResourceGroup --location eastusСоздайте Реестр контейнеров Azure с уникальным именем, вызвав команду az acr create. В следующем примере создается ACR с именем myhelmacr с SKU типа Basic.
az acr create --resource-group myResourceGroup --name myhelmacr --sku BasicВыходные данные должны выглядеть примерно так, как в приведенном ниже примере выходных данных. Запишите значение сервера входа для ACR, которое будет использоваться на следующем шаге.
{ "adminUserEnabled": false, "creationDate": "2023-12-26T22:36:23.998425+00:00", "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr", "location": "eastus", "loginServer": "myhelmacr.azurecr.io", "name": "myhelmacr", "networkRuleSet": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", "sku": { "name": "Basic", "tier": "Basic" }, "status": null, "storageAccount": null, "tags": {}, "type": "Microsoft.ContainerRegistry/registries" }
Создание кластера AKS
Новому кластеру AKS требуется доступ к ACR для извлечения образов контейнеров и их запуска.
Создайте кластер AKS с помощью команды az aks create с
--attach-acrпараметром, чтобы предоставить кластеру доступ к ACR. В следующем примере создается кластер AKS с именем myAKSCluster и предоставляет ему доступ к ACR myhelmacr . Убедитесь, что вы заменитеmyhelmacrна имя вашего ACR.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Подключение к кластеру AKS
Чтобы подключить кластер Kubernetes локально, используйте клиент командной строки Kubernetes, kubectl.
kubectl уже установлен, если вы используете Azure Cloud Shell.
Установите
kubectlлокально с помощью команды az aks install-cli .az aks install-cliНастройте в
kubectlподключение к кластеру Kubernetes, выполнив команду az aks get-credentials. Следующая команда получает учетные данные для кластера AKS с именем myAKSCluster в myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Загрузка примера приложения
В этом кратком руководстве используется приложение Azure Vote.
Клонируйте приложение из GitHub с помощью команды
git clone.git clone https://github.com/Azure-Samples/azure-voting-app-redis.gitПерейдите в каталог
azure-voteс помощью командыcd.cd azure-voting-app-redis/azure-vote/
Создание и отправка примера приложения в ACR
Создайте и отправьте образ в ACR с помощью команды az acr build . В следующем примере создается образ с именем azure-vote-front:v1, который затем отправляется в myhelmacr в системе ACR. Убедитесь, что вы замените
myhelmacrна имя вашего ACR.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Примечание.
Вы также можете импортировать диаграммы Helm в ACR. Дополнительные сведения см. в разделе Push и извлечение диаграмм Helm в реестр контейнеров Azure.
Создание чарта Helm
Создайте чарт Helm с помощью команды
helm create.helm create azure-vote-frontОбновите azure-vote-front/Chart.yaml, чтобы добавить зависимость для чарта redis из
https://charts.bitnami.com/bitnamiрепозитория чартов и обновитьappVersionдоv1, как показано в следующем примере:Примечание.
Версии образа контейнера, показанные в этом руководстве, были протестированы для работы с этим примером, но могут быть не последней доступной версией.
apiVersion: v2 name: azure-vote-front description: A Helm chart for Kubernetes dependencies: - name: redis version: 17.3.17 repository: https://charts.bitnami.com/bitnami ... # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: v1Обновите зависимости диаграммы Helm с помощью
helm dependency updateкоманды.helm dependency update azure-vote-frontОбновите azure-vote-front/values.yaml, внесите следующие изменения.
- Добавьте раздел redis, чтобы настроить сведения об образе, порт контейнера и имя развертывания.
- Добавьте backendName для подключения фронтенд-части к развертывке redis.
- Измените image.repository на
<loginServer>/azure-vote-front. - Измените image.tag на
v1. - Измените service.type на LoadBalancer.
Например:
replicaCount: 1 backendName: azure-vote-backend-master redis: image: registry: mcr.microsoft.com repository: oss/bitnami/redis tag: 6.0.8 fullnameOverride: azure-vote-backend auth: enabled: false image: repository: myhelmacr.azurecr.io/azure-vote-front pullPolicy: IfNotPresent tag: "v1" ... service: type: LoadBalancer port: 80 ...envДобавьте раздел в azure-vote-front/templates/deployment.yaml, чтобы передать имя развертывания redis.... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: REDIS value: {{ .Values.backendName }} ...
Запустите чарт Helm
Установите приложение с использованием чарта Helm с помощью команды
helm install.helm install azure-vote-front azure-vote-front/Возвращение общедоступного IP-адреса службы займет несколько минут. Отслеживайте ход выполнения, используя команду
kubectl get serviceс аргументом--watch.kubectl get service azure-vote-front --watchКогда служба будет готова,
EXTERNAL-IPзначение изменяется с<pending>на IP-адрес. НажмитеCTRL+C, чтобы остановитьkubectlпроцесс наблюдения.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-front LoadBalancer 10.0.18.228 <pending> 80:32021/TCP 6s ... azure-vote-front LoadBalancer 10.0.18.228 52.188.140.81 80:32021/TCP 2m6sПерейдите к подсистеме балансировки нагрузки приложения в браузере, используя
<EXTERNAL-IP>для просмотра примера приложения.
Удаление кластера
Удалите группу ресурсов, кластер AKS, реестр контейнеров Azure, образы контейнеров, хранящиеся в ACR, и все связанные ресурсы с помощью команды delete az group delete с параметром
--yesдля подтверждения удаления и параметра--no-wait, чтобы вернуться в командную строку, не ожидая завершения операции.az group delete --name myResourceGroup --yes --no-wait
Примечание.
Если вы создали кластер AKS с управляемым удостоверением, назначаемым системой (параметр удостоверения по умолчанию в этом кратком руководстве), удостоверение управляется платформой и не требует удаления.
Если вы создали кластер AKS с субъектом-службой, субъект-служба не удаляется при удалении кластера. Чтобы удалить служебный принципал, ознакомьтесь с разделом соображения и удаление служебного принципала AKS.
Следующие шаги
Дополнительные сведения об использовании Helm см. в документации Helm.