Настройка среды 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 и перейти к следующему уроку.