Gérer des profils de charge de travail avec l’interface Azure CLI

Découvrez comment gérer un environnement de profils de charge de travail à l’aide d’Azure CLI.

Créer une application conteneur dans un profil

Par défaut, votre environnement Container Apps est créé avec un réseau virtuel managé qui est généré automatiquement pour vous. Les réseaux virtuels générés vous sont inaccessibles à mesure qu’ils sont créés dans le locataire de Microsoft.

Vous pouvez également créer un environnement avec un réseau virtuel personnalisé si vous avez besoin de l’une des fonctionnalités suivantes :

  • Itinéraires définis par l’utilisateur
  • Intégration à Application Gateway
  • Network Security Group
  • Communication avec des ressources derrière des points de terminaison privés dans votre réseau virtuel

Lorsque vous créez un environnement avec un réseau virtuel personnalisé, vous avez un contrôle total sur la configuration du réseau virtuel. Cette quantité de contrôle vous donne la possibilité d’implémenter les fonctionnalités suivantes :

  • Itinéraires définis par l’utilisateur
  • Intégration à Application Gateway
  • Network Security Group
  • Communication avec des ressources derrière des points de terminaison privés dans votre réseau virtuel

Utilisez les commandes suivantes pour créer un environnement de profils de charge de travail.

  1. Créer un réseau virtuel.

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. Créez un sous-réseau délégué à Microsoft.App/environments.

    az network vnet subnet create \
      --address-prefixes 13.0.0.0/23 \
      --delegations Microsoft.App/environments \
      --name "<SUBNET_NAME>" \
      --resource-group "<RESOURCE_GROUP>" \
      --vnet-name "<VNET_NAME>" \
      --query "id"
    

    Copiez la valeur d’ID et collez-la dans la commande suivante.

    La Microsoft.App/environments délégation est requise pour donner au runtime Container Apps le contrôle requis sur votre réseau virtuel pour exécuter des profils de charge de travail dans l’environnement Container Apps.

    Vous pouvez spécifier aussi petit qu’un /27 CIDR (32 adresses IP-8 réservées) pour le sous-réseau. Si vous souhaitez spécifier un /27 CIDR, tenez compte des éléments suivants :

    • Il existe 11 adresses IP réservées à l’infrastructure Container Apps. Par conséquent, un /27 CIDR a un maximum de 21 adresses IP disponibles.

    • Les adresses IP sont allouées différemment entre les plans Consommation uniquement et Dédié :

      Consommation uniquement Dédié
      Chaque réplica nécessite une adresse IP. Les utilisateurs ne peuvent pas avoir d’applications avec plus de 21 réplicas sur toutes les applications. Le déploiement de temps d’arrêt zéro nécessite un double nombre d’adresses IP, car l’ancienne révision est en cours d’exécution jusqu’à ce que la nouvelle révision soit correctement déployée. Chaque instance (nœud de machine virtuelle) nécessite une adresse IP unique. Vous pouvez avoir jusqu’à 21 instances sur tous les profils de charge de travail, et des centaines ou plusieurs réplicas s’exécutant sur ces profils de charge de travail.
  1. Créer un environnement de profils de charge de travail

    Remarque

    Vous pouvez configurer si votre application conteneur autorise l’entrée publique ou uniquement l’entrée à partir de votre réseau virtuel au niveau de l’environnement. Pour limiter l’entrée à votre réseau virtuel, définissez l’indicateur --internal-only .

    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    
    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    Cette commande peut prendre jusqu’à 10 minutes.

  2. Vérifiez l’état de votre environnement. La commande suivante indique si l’environnement est créé avec succès.

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    Vous provisioningState devez signaler Succeeded avant de passer à la commande suivante.

  3. Créez une application conteneur.

    az containerapp create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<CONTAINER_APP_NAME>" \
      --target-port 80 \
      --ingress external \
      --image mcr.microsoft.com/k8se/quickstart:latest \
      --environment "<ENVIRONMENT_NAME>" \
      --workload-profile-name "Consumption"
    

    Cette commande déploie l’application sur le profil de charge de travail consommation intégré. Si vous souhaitez créer une application dans un profil dédié, vous devez d’abord ajouter le profil à l’environnement.

    Cette commande crée la nouvelle application dans l’environnement à l’aide d’un profil de charge de travail spécifique.

Ajouter des profils

Ajoutez un nouveau profil de charge de travail à un environnement existant.

az containerapp env workload-profile add \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

La valeur que vous sélectionnez pour l’espace <WORKLOAD_PROFILE_NAME> réservé est le nom convivial du profil de charge de travail.

L’utilisation de noms conviviaux vous permet d’ajouter plusieurs profils du même type à un environnement. Le nom convivial est ce que vous utilisez lorsque vous déployez et gérez une application conteneur dans un profil de charge de travail.

Modifier les profils

Vous pouvez modifier le nombre minimal et maximal de nœuds utilisés par un profil de charge de travail via la update commande.

az containerapp env workload-profile update \
  --resource-group <RESOURCE_GROUP> \
  --name <ENV_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

Supprimer un profil

Utilisez la commande suivante pour supprimer un profil de charge de travail.

az containerapp env workload-profile delete \
  --resource-group "<RESOURCE_GROUP>" \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

Remarque

Le profil de charge de travail Consommation ne peut pas être supprimé.

Inspecter les profils

Les commandes suivantes vous permettent de répertorier les profils disponibles dans votre région et ceux utilisés dans un environnement spécifique.

Répertorier les profils de charge de travail disponibles

Utilisez la list-supported commande pour répertorier les profils de charge de travail pris en charge pour votre région.

La commande Azure CLI suivante affiche les résultats d’une table.

az containerapp env workload-profile list-supported \
  --location <LOCATION>  \
  --query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
  -o table

La réponse ressemble à une table similaire à l’exemple ci-dessous :

Name         Cores    MemoryGiB    Category
-----------  -------  -----------  ---------------
D4           4        16           GeneralPurpose
D8           8        32           GeneralPurpose
D16          16       64           GeneralPurpose
E4           4        32           MemoryOptimized
E8           8        64           MemoryOptimized
E16          16       128          MemoryOptimized
E32          32       256          MemoryOptimized
Consumption  4        8            Consumption

Sélectionnez un profil de charge de travail et utilisez le champ Nom lorsque vous exécutez az containerapp env workload-profile set pour l’option --workload-profile-type.

Afficher un profil de charge de travail

Affichez des détails sur un profil de charge de travail.

az containerapp env workload-profile show \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

Étapes suivantes