Configurare l'ambiente Azure
In questa unità si usa l'interfaccia della riga di comando di Azure per creare le risorse di Azure necessarie in unità successive. Prima di iniziare a immettere i comandi, assicurarsi che Docker Desktop o Docker Engine su Linux sia installato e in esecuzione.
Negli esempi di questo modulo viene usata la sintassi Bash, incluse export e le continuazioni di riga con barra rovesciata. Usare una sessione Bash locale per gli esercizi. In Windows usare una distribuzione WSL 2 Linux con l'integrazione di Docker Desktop abilitata. Installare e usare linux interfaccia della riga di comando di Azure e Git in tale distribuzione. In macOS o Linux usare una sessione Bash locale con accesso al daemon Docker.
Con Azure Cloud Shell è possibile eseguire comandi di gestione di Azure, ma non esegue un daemon Docker e non è una sostituzione per i passaggi locali di compilazione delle immagini e di esecuzione del contenitore di questo modulo. PowerShell nativo e prompt dei comandi richiedono una sintassi di continuazione di riga e variabile diversa.
Dalla sessione Bash che verrà usata per gli esercizi, controllare gli strumenti prima di creare Azure risorse:
git --version
az version
docker version
Verificare che tutti e tre i comandi abbiano esito positivo e che docker version mostri un Server raggiungibile e anche il client. Se il server non è disponibile, correggere Docker Desktop, Docker Engine o l'integrazione con WSL prima di procedere.
Per risparmiare tempo, è possibile indicare ad Azure di effettuare prima il provisioning delle risorse e quindi di passare all'unità successiva. La creazione del cluster di Servizio Azure Kubernetes (AKS) può richiedere fino a 10 minuti. Questo processo può essere eseguito in background mentre si procede con le unità successive.
Eseguire l'autenticazione con Azure Resource Manager
Usare il comando seguente per accedere:
az login
Seleziona un abbonamento Azure
Le sottoscrizioni di Azure sono contenitori logici usati per effettuare il provisioning delle risorse in Azure. Usare il comando seguente per elencare le sottoscrizioni di Azure, quindi individuare l'ID sottoscrizione, ovvero il SubscriptionId valore che si intende usare in questo modulo.
az account list --output table
Usare il comando seguente per assicurarsi di usare una sottoscrizione di Azure che ti consenta di creare le risorse necessarie per questo modulo, sostituendo il segnaposto con il valore SubscriptionId preferito:
az account set --subscription "<your-subscription-ID>"
Definire le variabili locali
Per semplificare i comandi usati in un secondo momento, configurare le variabili di ambiente seguenti. Assicurarsi di sostituire i segnaposto seguenti con i propri valori:
- Sostituire
<your-Azure-region>con la regione desiderata, per esempioeastus. - Sostituire
<your-container-registry>con un valore univoco. Questo valore viene usato per generare un nome di dominio completo (FQDN) univoco per il registro contenitori di Azure al momento della creazione. - Sostituire
<your-unique-DNS-prefix-to-access-your-AKS-cluster>con un valore univoco. Questo valore viene usato per generare un FQDN univoco per il cluster AKS al momento della creazione.
Annotazioni
I nomi del registro contenitori di Azure devono essere univoci a livello globale in Azure e contenere 5-50 caratteri alfanumerici (solo lettere e numeri). I trattini e i caratteri di sottolineatura non sono consentiti. Sostituire <your-container-registry> con un nome conforme e disponibile prima di impostare AZ_CONTAINER_REGISTRY. Per altre informazioni, vedere Requisiti di denominazione del registro contenitori.
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>
Creare un gruppo di risorse di Azure
I gruppi di risorse di Azure sono contenitori di Azure nelle sottoscrizioni Azure per contenere risorse correlate per una soluzione di Azure. Creare un gruppo di risorse usando il comando seguente:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION \
| jq
Annotazioni
Questo modulo usa lo strumento jq, che è installato per impostazione predefinita in Azure Cloud Shell per visualizzare i dati JSON e renderli più leggibili.
Se non si vuole usare lo strumento jq, è possibile rimuovere senza problemi la parte | jq di tutti i comandi in questo modulo.
Creare un registro container di Azure
Registro Azure Container consente di compilare, archiviare e gestire immagini contenitore, inclusa un'immagine contenitore per questa app Java. Creare un registro di contenitori usando il comando seguente:
az acr create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_CONTAINER_REGISTRY \
--sku Basic \
--role-assignment-mode rbac \
| jq
L'opzione --role-assignment-mode rbac seleziona in modo esplicito le autorizzazioni di solo controllo degli accessi in base al ruolo (RBAC). In questo esercizio viene mantenuta l'integrazione --attach-acr e AcrPull usata in questo esercizio.
Per qualsiasi registro nuovo o riutilizzato che usa RBAC Registry + ABAC Repository Permissions, che supporta il controllo degli accessi basato su attributi (ABAC), --attach-acr non è supportato. Il flusso di lavoro di integrazione abilitato per ABAC richiede invece Container Registry Repository Reader per l'identità kubelet e le autorizzazioni del repository appropriate per l'identità di pubblicazione. Seguire il flusso di lavoro anziché eseguire i comandi di integrazione di questo esercizio senza modifiche. Microsoft consiglia la modalità con ABAC abilitato; questa impostazione di solo controllo degli accessi in base al ruolo di questo esercizio non è una raccomandazione per effettuare il downgrade di un registro esistente con ABAC abilitato.
Usare il comando seguente per configurare interfaccia della riga di comando di Azure per usare questo Registro contenitori di Azure appena creato:
az configure --defaults acr=$AZ_CONTAINER_REGISTRY
Usare il comando seguente per eseguire l'autenticazione nel Registro Azure Container appena creato:
Annotazioni
Prima di eseguire il az acr login comando, assicurarsi che Docker Desktop o il motore Docker in Linux sia in esecuzione e che il relativo daemon sia raggiungibile dalla sessione Bash. Se non è raggiungibile, viene visualizzato un messaggio di errore simile a 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
Creare un cluster del Servizio Azure Kubernetes
È necessario un cluster AKS per distribuire l'immagine del contenitore dell'app Java.
Importante
L'opzione --attach-acr assegna il ruolo AcrPull all'identità kubelet di AKS. Oltre all'autorizzazione per creare le risorse, l'account deve disporre di Microsoft.Authorization/roleAssignments/write nell'ambito del registro o in un ambito predecessore.
Collaboratore da solo non concede questa autorizzazione. Se necessario, chiedere all'amministratore di Azure di eseguire l'integrazione o concedere l'accesso per l'assegnazione dei ruoli con ambito appropriato, ad esempio Role Based Controllo di accesso Administrator insieme alle autorizzazioni necessarie per la gestione delle risorse.
Creare un cluster del servizio Azure Kubernetes usando il comando seguente:
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
Annotazioni
La creazione di un cluster AKS può richiedere fino a 10 minuti. Dopo aver eseguito il comando precedente, è possibile lasciarlo continuare nella scheda dell'interfaccia della riga di comando di Azure e passare al modulo successivo.