Configura tu entorno de Azure

Completados

En esta unidad, usará la CLI de Azure para crear los recursos de Azure necesarios en unidades posteriores. Antes de empezar a escribir comandos, asegúrese de que Docker Desktop o Docker Engine en Linux está instalado y en ejecución.

En los ejemplos de este módulo se usa la sintaxis de Bash, incluidas export las continuaciones de línea con barra invertida. Usa una sesión local de Bash para los ejercicios. En Windows, utilice una distribución de Linux de WSL 2 con la integración de Docker Desktop habilitada; instale y use el CLI de Azure de Linux y Git en esa distribución. En macOS o Linux, usa una sesión local de Bash con acceso al demonio de Docker.

Azure Cloud Shell puede ejecutar comandos de administración Azure, pero no ejecuta un demonio de Docker y no es un reemplazo de los pasos locales de compilación de imágenes y ejecución de contenedores de este módulo. PowerShell nativo y símbolo del sistema requieren una sintaxis de variable y continuación de línea diferentes.

En la sesión de Bash que usará para los ejercicios, compruebe las herramientas antes de crear recursos de Azure:

git --version
az version
docker version

Confirme que los tres comandos se realizan correctamente y que docker version muestra Server como accesible, así como el cliente. Si el servidor no está disponible, corrija Docker Desktop, Docker Engine o la integración con WSL antes de continuar.

Para ahorrar tiempo, puede indicar a Azure que aprovisione primero los recursos y, a continuación, vaya a la unidad siguiente. La creación de clústeres de Azure Kubernetes Service (AKS) puede tardar hasta 10 minutos. Este proceso se puede ejecutar en segundo plano mientras continúa a través de unidades posteriores.

Autenticación con Azure Resource Manager

Use el siguiente comando para iniciar sesión:

az login

Selección de una suscripción de Azure

Las suscripciones de Azure son contenedores lógicos que se usan para aprovisionar recursos en Azure. Use el siguiente comando para enumerar las suscripciones de Azure y, a continuación, busque el identificador de suscripción ( el SubscriptionId valor) que planea usar en este módulo.

az account list --output table

Use el siguiente comando para asegurarse de que usa una suscripción de Azure que le permite crear recursos para los fines de este módulo, sustituyendo su valor preferido SubscriptionId por el marcador de posición:

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

Definición de variables locales

Para simplificar los comandos que use más adelante, configure las siguientes variables de entorno. Asegúrese de reemplazar los siguientes marcadores de posición por sus propios valores:

  • Reemplace por <your-Azure-region> la región que prefiera; por ejemplo, eastus.
  • Reemplaza <your-container-registry> con un valor único. Este valor se usa para generar un nombre de dominio completo (FQDN) único para el registro de contenedor de Azure cuando se crea.
  • Reemplaza <your-unique-DNS-prefix-to-access-your-AKS-cluster> con un valor único. Este valor se usa para generar un FQDN único para el clúster de AKS cuando se crea.

Nota:

Los nombres del registro de contenedor de Azure deben ser únicos globalmente en Azure y contener de 5 a 50 caracteres alfanuméricos (solo letras y números). No se permiten guiones y caracteres de subrayado. Reemplace <your-container-registry> por un nombre compatible y disponible antes de establecer AZ_CONTAINER_REGISTRY. Para más información, consulte Requisitos de nomenclatura de 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>

Cree un grupo de recursos de Azure

Los grupos de recursos de Azure son contenedores de Azure en suscripciones de Azure para contener recursos relacionados para una solución de Azure. Cree un grupo de recursos mediante el comando siguiente:

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

Nota:

En este módulo se usa la jq herramienta , que se instala de forma predeterminada en Azure Cloud Shell para mostrar datos JSON y hacer que sea más legible.

Si no quiere usar la herramienta jq, puede quitar de forma segura la parte | jq de todos los comandos de este módulo.

Creación de un registro de contenedor de Azure

Azure Container Registry permite compilar, almacenar y administrar imágenes de contenedor, incluida una imagen de contenedor para esta aplicación Java. Cree un registro de contenedor mediante el comando siguiente:

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

La opción --role-assignment-mode rbac selecciona explícitamente permisos solo de control de acceso basado en roles (RBAC). Esto conserva la integración --attach-acr y AcrPull que se usa en este ejercicio.

Para cualquier registro nuevo o reutilizado mediante RBAC Registry + ABAC Repository Permissions, que admite el control de acceso basado en atributos (ABAC), --attach-acr no se admite. En su lugar, el flujo de trabajo de integración habilitado para ABAC requiere Container Registry Repository Reader para la identidad de kubelet y los permisos de repositorio adecuados para la identidad de publicación. Siga ese flujo de trabajo en lugar de ejecutar los comandos de integración de este ejercicio sin cambios. Microsoft recomienda el modo habilitado para ABAC; la configuración de solo RBAC de este ejercicio no es una recomendación para degradar un registro habilitado para ABAC existente.

Use el siguiente comando para configurar la CLI de Azure para usar este registro de contenedor de Azure recién creado:

az configure --defaults acr=$AZ_CONTAINER_REGISTRY

Use el siguiente comando para autenticarse en el registro de contenedor de Azure recién creado:

Nota:

Antes de ejecutar el az acr login comando, asegúrese de que Docker Desktop o Docker Engine en Linux se esté ejecutando y de que su demonio sea accesible desde la sesión de Bash. Si no es accesible, recibirá un mensaje de error similar al de 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

Creación de un clúster de Azure Kubernetes Service

Necesita un clúster de AKS para implementar la imagen de contenedor de la aplicación Java.

Important

La --attach-acr opción asigna el AcrPull rol a la identidad kubelet de AKS. Además del permiso para crear los recursos, la cuenta necesita tener Microsoft.Authorization/roleAssignments/write en el ámbito del registro o en un ámbito antecesor. Contributor por sí solo no concede este permiso. Si es necesario, pida al administrador de Azure que realice la integración o conceda acceso a la asignación de roles con ámbito adecuado, como Role Based Access Control Administrator junto con los permisos de administración de recursos necesarios.

Cree un clúster de AKS mediante el comando siguiente:

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

Nota:

La creación de un clúster de AKS puede tardar hasta 10 minutos. Después de ejecutar el comando anterior, puede permitir que continúe en la pestaña de la CLI de Azure y pasar a la unidad siguiente.