Configurer votre environnement Azure
Dans cette unité, vous utilisez Azure CLI pour créer les ressources Azure nécessaires dans les unités ultérieures. Avant de commencer à entrer des commandes, vérifiez que Docker Desktop ou le moteur Docker sur Linux est installé et en cours d’exécution.
Les exemples de ce module utilisent la syntaxe Bash, y compris export et les continuations de ligne avec barre oblique inverse. Utilisez une session Bash locale pour les exercices. Sur Windows, utilisez une distribution WSL 2 Linux avec l’intégration Docker Desktop activée ; installez et utilisez le Azure CLI Linux et Git dans cette distribution. Sur macOS ou Linux, utilisez une session Bash locale avec accès à votre démon Docker.
Azure Cloud Shell peut exécuter des commandes de gestion Azure, mais elle n'exécute pas de démon Docker et n'est pas un remplacement pour les étapes de génération d'images locales et d'exécution de conteneur de ce module. PowerShell natif et invite de commandes nécessitent une syntaxe de variable et de continuation de ligne différente.
À partir de la session Bash que vous allez utiliser pour les exercices, vérifiez vos outils avant de créer des ressources Azure :
git --version
az version
docker version
Vérifiez que les trois commandes aboutissent et que docker version affiche un Server accessible ainsi que le client. Si le serveur n’est pas disponible, corrigez l’intégration docker Desktop, Docker Engine ou WSL avant de continuer.
Pour gagner du temps, vous pouvez demander à Azure de provisionner les ressources en premier, puis de passer à l’unité suivante. La création d’un cluster Azure Kubernetes Service (AKS) peut prendre jusqu’à 10 minutes. Ce processus peut s’exécuter en arrière-plan pendant que vous passez par des unités ultérieures.
S’authentifier auprès d’Azure Resource Manager
Utilisez la commande suivante pour vous connecter :
az login
Sélectionner un abonnement Azure
Les abonnements Azure sont des conteneurs logiques utilisés pour provisionner des ressources dans Azure. Utilisez la commande suivante pour répertorier vos abonnements Azure, puis recherchez l’ID d’abonnement , la SubscriptionId valeur que vous envisagez d’utiliser dans ce module.
az account list --output table
Utilisez la commande suivante pour vous assurer que vous utilisez un abonnement Azure qui vous permet de créer des ressources à des fins de ce module, en remplaçant votre valeur par défaut SubscriptionId pour l’espace réservé :
az account set --subscription "<your-subscription-ID>"
Définir des variables locales
Pour simplifier les commandes que vous utilisez ultérieurement, configurez les variables d’environnement suivantes. Veillez à remplacer les espaces réservés suivants par vos propres valeurs :
- Remplacez
<your-Azure-region>par votre région de choix , par exemple.eastus - Remplacez par
<your-container-registry>une valeur unique. Cette valeur est utilisée pour générer un nom de domaine complet unique (FQDN) pour votre registre de conteneurs Azure lors de sa création. - Remplacez par
<your-unique-DNS-prefix-to-access-your-AKS-cluster>une valeur unique. Cette valeur est utilisée pour générer un nom de domaine complet unique pour votre cluster AKS lors de sa création.
Remarque
Les noms de registre de conteneurs Azure doivent être globalement uniques dans Azure et contenir de 5 à 50 caractères alphanumériques (lettres et chiffres uniquement). Les traits d’union et les traits de soulignement ne sont pas autorisés. Remplacez <your-container-registry> par un nom conforme et disponible avant de définir AZ_CONTAINER_REGISTRY. Pour plus d’informations, consultez les exigences de nommage du registre de conteneurs.
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>
Créer un groupe de ressources Azure
Les groupes de ressources Azure sont des conteneurs Azure dans des abonnements Azure pour conserver les ressources associées pour une solution Azure. Créez un groupe de ressources à l’aide de la commande suivante :
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION \
| jq
Remarque
Ce module utilise l’outil jq , qui est installé par défaut sur Azure Cloud Shell pour afficher des données JSON et le rendre plus lisible.
Si vous ne voulez pas utiliser l’outil jq, vous pouvez supprimer sans problème la partie | jq de toutes les commandes de ce module.
Créer un registre de conteneurs Azure
Azure Container Registry vous permet de générer, stocker et gérer des images conteneur, y compris une image conteneur pour cette application Java. Créez un registre de conteneurs à l’aide de la commande suivante :
az acr create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_CONTAINER_REGISTRY \
--sku Basic \
--role-assignment-mode rbac \
| jq
L’option --role-assignment-mode rbac sélectionne explicitement les autorisations de contrôle d’accès en fonction du rôle (RBAC) uniquement. Cela permet de conserver l’intégration --attach-acr et AcrPull utilisée dans cet exercice.
Pour tout registre nouveau ou réutilisé à l’aide de RBAC Registry + ABAC Repository Permissions, qui prend en charge le contrôle d’accès basé sur les attributs (ABAC), --attach-acr n’est pas pris en charge. Le workflow d’intégration activé par ABAC requiert plutôt Container Registry Repository Reader pour l’identité kubelet et les autorisations de référentiel appropriées pour l’identité de publication. Suivez ce flux de travail plutôt que d’exécuter telles quelles les commandes d’intégration de cet exercice. Microsoft recommande le mode ABAC ; ce paramètre RBAC uniquement de cet exercice n'est pas une recommandation pour rétrograder un registre ABAC existant.
Utilisez la commande suivante pour configurer Azure CLI pour utiliser ce registre de conteneurs Azure nouvellement créé :
az configure --defaults acr=$AZ_CONTAINER_REGISTRY
Utilisez la commande suivante pour vous authentifier auprès du registre de conteneurs Azure nouvellement créé :
Remarque
Avant d’exécuter la az acr login commande, assurez-vous que Docker Desktop ou le moteur Docker sur Linux est en cours d’exécution et que son démon est accessible à partir de votre session Bash. S’il n’est pas accessible, vous recevez un message d’erreur similaire à 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
Créer un cluster Azure Kubernetes Service
Vous avez besoin d’un cluster AKS pour déployer l’image conteneur d’application Java.
Important
L’option --attach-acr attribue le AcrPull rôle à l’identité kubelet AKS. Outre l’autorisation de créer les ressources, votre compte a besoin de Microsoft.Authorization/roleAssignments/write au niveau de l’étendue du registre ou d’une étendue ancêtre.
Contributeur seul ne confère pas cette autorisation. Si nécessaire, demandez à votre administrateur Azure d’effectuer l’intégration ou d’accorder un accès à l’attribution de rôles avec une portée appropriée, tel que Role Based Access Control Administrator, ainsi que les autorisations de gestion des ressources requises.
Créez un cluster AKS à l’aide de la commande suivante :
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
Remarque
La création d’un cluster AKS peut prendre jusqu’à 10 minutes. Après avoir exécuté la commande précédente, vous pouvez la laisser continuer dans votre onglet Azure CLI et passer à l’unité suivante.