Настройка среды Azure

Завершено

В этом уроке вы используете Azure CLI для создания ресурсов Azure, необходимых в последующих уроках. Прежде чем приступить к вводу команд, убедитесь, что Docker Desktop или Docker Engine в Linux установлены и запущены.

В примерах этого модуля используется синтаксис Bash, включая export и продолжения строк с помощью обратной косой черты. Используйте локальный сеанс Bash для упражнений. В Windows используйте дистрибутив WSL 2 Linux с включенной интеграцией Docker Desktop; установите и используйте Linux-версию Azure CLI и Git в этом дистрибутиве. В macOS или Linux используйте локальный сеанс Bash с доступом к демону Docker.

Azure Cloud Shell может выполнять команды управления Azure, но он не запускает демон Docker и не является заменой для локальных шагов сборки образа и запуска контейнеров этого модуля. Собственные PowerShell и Командная строка требуют разного синтаксиса переменных и переноса строк.

Из сеанса Bash, который вы будете использовать для упражнений, проверьте средства перед созданием Azure ресурсов:

git --version
az version
docker version

Убедитесь, что все три команды успешно выполнены и что docker version показывает доступный Server, а также клиент. Если сервер недоступен, исправьте Docker Desktop, Docker Engine или интеграцию WSL перед продолжением.

Чтобы сэкономить время, вы можете инструктировать Azure сначала подготовить ресурсы, а затем перейти к следующему юниту. Создание кластера Службы Azure Kubernetes (AKS) может занять до 10 минут. Этот процесс может выполняться в фоновом режиме, пока вы выполняете следующие модули.

Проверка подлинности с помощью Azure Resource Manager

Используйте следующую команду для входа:

az login

Выбор подписки Azure

Подписки Azure — это логические контейнеры, используемые для подготовки ресурсов в Azure. Используйте следующую команду для перечисления подписок Azure, а затем найдите идентификатор подписки — SubscriptionId значение, которое планируется использовать в этом модуле.

az account list --output table

Используйте следующую команду, чтобы убедиться, что вы используете подписку Azure, которая позволяет создавать ресурсы для целей этого модуля, заменив предпочтительное SubscriptionId значение заполнителя:

az account set --subscription "<your-subscription-ID>"

Определение локальных переменных

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

  • Замените <your-Azure-region> выбранным регионом, например eastus.
  • Замените <your-container-registry> уникальным значением. Это значение используется для создания уникального полного доменного имени (FQDN) для реестра контейнеров Azure при его создании.
  • Замените <your-unique-DNS-prefix-to-access-your-AKS-cluster> уникальным значением. Это значение используется для генерации уникального полного доменного имени для вашего кластера AKS при его создании.

Заметка

Azure имена реестра контейнеров должны быть глобально уникальными в Azure и содержать 5–50 буквенно-цифровых символов (только буквы и цифры). Дефисы и подчеркивания не допускаются. Замените <your-container-registry> на соответствующее доступное имя перед установкой AZ_CONTAINER_REGISTRY. Дополнительные сведения см. в разделе Требования к именованию реестра контейнеров.

export AZ_RESOURCE_GROUP=java-containerization-demo-rg
export AZ_CONTAINER_REGISTRY=<your-container-registry>
export AZ_KUBERNETES_CLUSTER=java-containerization-demo-aks
export AZ_LOCATION=<your-Azure-region>
export AZ_KUBERNETES_CLUSTER_DNS_PREFIX=<your-unique-DNS-prefix-to-access-your-AKS-cluster>

создание группы ресурсов Azure;

Группы ресурсов Azure — это контейнеры Azure в подписках Azure для хранения связанных ресурсов для решения Azure. Создайте группу ресурсов с помощью следующей команды:

az group create \
    --name $AZ_RESOURCE_GROUP \
    --location $AZ_LOCATION \
| jq

Заметка

В этом модуле используется jq средство, которое устанавливается по умолчанию в Azure Cloud Shell для отображения данных JSON и повышения его удобочитаемой возможности.

Если вы не хотите использовать средство jq, вы можете безопасно удалить | jq часть всех команд в этом модуле.

Создание реестра контейнеров Azure

Реестр контейнеров Azure позволяет создавать, хранить образы контейнеров и управлять ими, включая образ контейнера для этого приложения Java. Создайте реестр контейнеров с помощью следующей команды:

az acr create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_CONTAINER_REGISTRY \
    --sku Basic \
    --role-assignment-mode rbac \
| jq

Опция --role-assignment-mode rbac явно выбирает разрешения только для RBAC. Это сохраняет интеграцию AcrPull и --attach-acr, используемую в этом упражнении.

Использование любого нового или повторно используемого реестра с RBAC Registry + ABAC Repository Permissions, поддерживающего управление доступом на основе атрибутов (ABAC), --attach-acr не поддерживается. Вместо этого рабочий процесс интеграции с поддержкой ABAC требует Container Registry Repository Reader для удостоверения kubelet и соответствующих разрешений репозитория для удостоверения публикации. Следуйте этому рабочему процессу, а не выполняйте команды интеграции этого упражнения без изменений. Microsoft рекомендует режим с поддержкой ABAC; эта конфигурация только с RBAC не является рекомендацией по понижению существующего реестра с поддержкой ABAC.

Используйте следующую команду, чтобы настроить Azure CLI для использования этого только что созданного реестра контейнеров Azure:

az configure --defaults acr=$AZ_CONTAINER_REGISTRY

Используйте следующую команду для проверки подлинности в созданном реестре контейнеров Azure:

Заметка

Перед выполнением az acr login команды убедитесь, что Docker Desktop или Docker Engine в Linux запущены и что его демон доступен из сеанса Bash. Если он недоступен, вы получите сообщение об ошибке, аналогичное Cannot connect to the Docker daemon at unix:///$HOME_DIR/.docker/run/docker.sock. Is the docker daemon running?

az acr login --name $AZ_CONTAINER_REGISTRY

Создать кластер службы Azure Kubernetes

Для развертывания образа контейнера приложения Java требуется кластер AKS.

Important

Параметр --attach-acr назначает AcrPull роль удостоверению kubelet AKS. Помимо разрешения на создание ресурсов, вашей учетной записи требуется Microsoft.Authorization/roleAssignments/write в области реестра или в родительской области. Участник сам по себе не предоставляет это разрешение. При необходимости попросите администратора Azure выполнить интеграцию или предоставить соответствующим образом ограниченный доступ к назначению ролей, например Администратор управления доступом на основе ролей вместе с необходимыми разрешениями управления ресурсами.

Создайте кластер AKS с помощью следующей команды:

az aks create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_KUBERNETES_CLUSTER \
    --attach-acr $AZ_CONTAINER_REGISTRY \
    --dns-name-prefix=$AZ_KUBERNETES_CLUSTER_DNS_PREFIX \
    --generate-ssh-keys \
| jq

Заметка

Создание кластера AKS может занять до 10 минут. После выполнения предыдущей команды вы можете продолжить работу на вкладке Azure CLI и перейти к следующему уроку.