Fournir un réseau virtuel à un environnement Container Apps externe

L’exemple suivant montre comment créer un environnement Container Apps dans un réseau virtuel existant.

Commencez par vous connecter au portail Azure.

Créer une application de conteneur

Pour créer votre application conteneur, commencez sur la page d’accueil du portail Azure.

  1. Dans la barre de recherche supérieure, recherchez Applications conteneur.
  2. Dans les résultats de la recherche, sélectionnez Applications conteneur.
  3. Cliquez sur le bouton Créer.

Onglet Informations de base

Sous l’onglet Informations de base, effectuez les actions suivantes.

  1. Entrez les valeurs suivantes dans la section Détails du projet.

    Paramètre Action
    Abonnement Sélectionnez votre abonnement Azure.
    Resource group Sélectionnez Créer et entrez my-container-apps.
    Nom de l’application conteneur Entrez my-container-app.

Créer un environnement

Ensuite, créez un environnement pour votre application conteneur.

  1. Sélectionnez la région appropriée.

    Paramètre Valeur
    Région Sélectionnez USA Centre.
  2. Dans le champ Créer un environnement Container Apps, sélectionnez Créer.

  3. Dans l’onglet Informations de base de la page Créer un environnement Container Apps, entrez les valeurs suivantes :

    Paramètre Valeur
    Nom de l’environnement Entrez my-environment.
    Type d’environnement Sélectionnez Consommation uniquement.
    Redondance de zone Sélectionnez Désactivé
  4. Sélectionnez Supervision pour créer un espace de travail Log Analytics.

  5. Sélectionnez Azure Log Analytics comme Destination des journaux.

  6. Sélectionnez le lien Créer dans le champ Espace de travail Log Analytics et entrez les valeurs suivantes.

    Paramètre Valeur
    Nom Entrez my-container-apps-logs.

    Le champ Localisation est prérempli avec USA Centre.

  7. Cliquez sur OK.

Remarque

Vous pouvez utiliser un réseau virtuel existant, mais un sous-réseau dédié avec une plage CIDR de /23 ou plus est nécessaire pour une utilisation avec Container Apps lors de l’utilisation de l’architecture Consommation uniquement. Lors de l’utilisation d’un environnement de profils de charge de travail, une /27 ou plus grande est requise. Pour en savoir plus sur le dimensionnement du sous-réseau, consultez la vue d’ensemble de l’architecture réseau .

  1. Sélectionnez l’onglet Réseaux pour créer un réseau virtuel.

  2. Sélectionnez Oui en regard de l’option Utiliser votre propre réseau virtuel.

  3. En regard de la zone Réseau virtuel, sélectionnez le lien Créer un nouveau, puis entrez la valeur suivante.

    Paramètre Valeur
    Nom Entrez my-custom-vnet.
  4. Cliquez sur le bouton OK.

  5. En regard de la zone Sous-réseau de plan de contrôle, sélectionnez le lien Créer un nouveau, puis entrez les valeurs suivantes :

    Paramètre Valeur
    Nom du sous-réseau Entrez infrastructure-subnet.
    Bloc d’adresses du réseau virtuel Conservez les valeurs par défaut.
    Bloc d’adresses du sous-réseau Conservez les valeurs par défaut.
  6. Cliquez sur le bouton OK.

  7. Sous Adresse IP virtuelle, sélectionnez Externe.

  8. Sélectionnez Créer.

Déployer l’application de conteneur

  1. Au bas de la page, sélectionnez Vérifier et créer.

    Si aucune erreur n’est rencontrée, le bouton Créer est activé.

    En cas d’erreur, tout onglet contenant des erreurs est marqué d’un point rouge. Accédez à l’onglet approprié. Les champs contenant une erreur sont en rouge. Une fois toutes les erreurs résolues, resélectionnez Vérifier et créer.

  2. Sélectionnez Create (Créer).

    Une page contenant le message Le déploiement est en cours s’affiche. Une fois le déploiement terminé, vous voyez le message Votre déploiement est terminé.

Prérequis

  • Compte Azure avec un abonnement actif.
  • Installez Azure CLI 2.28.0 ou une version ultérieure.

Programme d’installation

Pour commencer, connectez-vous à Azure. Exécutez la commande suivante et suivez les invites pour terminer le processus d’authentification.

az login

Ensuite, installez l’extension Azure Container Apps pour l’interface CLI.

az extension add --name containerapp --upgrade

Après avoir installé la version actuelle de l’extension ou du module, inscrivez l’espace de noms Microsoft.App.

Notes

Les ressources Azure Container Apps ont migré de l’espace de noms Microsoft.Web vers l’espace de noms Microsoft.App. Pour plus d’informations, reportez-vous à Migration de l’espace de noms de Microsoft.Web vers Microsoft.App en mars 2022.

az provider register --namespace Microsoft.App

Inscrivez le fournisseur Microsoft.OperationalInsights dans l’espace de travail Azure Monitor Log Analytics si vous ne l’avez pas déjà utilisé.

az provider register --namespace Microsoft.OperationalInsights

Ensuite, définissez les variables d’environnement suivantes :

RESOURCE_GROUP="my-container-apps"
LOCATION="canadacentral"
CONTAINERAPPS_ENVIRONMENT="my-environment"

Une fois ces variables définies, vous pouvez créer un groupe de ressources pour organiser les services liés à votre nouvelle application conteneur.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

Une fois l’interface CLI mise à niveau et un nouveau groupe de ressources disponible, vous pouvez créer un environnement Container Apps et déployer votre application de conteneur.

Créer un environnement

Un environnement dans Azure Container Apps crée une limite sécurisée autour d’un groupe d’applications de conteneur. Les applications de conteneur déployées dans le même environnement sont déployées dans le même réseau virtuel et écrivent les journaux dans le même espace de travail Log Analytics.

Inscrivez le fournisseur Microsoft.ContainerService.

az provider register --namespace Microsoft.ContainerService

Déclarez une variable pour contenir le nom du réseau virtuel.

VNET_NAME="my-custom-vnet"

Créez ensuite un réseau virtuel Azure à associer à l’environnement Container Apps. Le réseau virtuel doit disposer d’un sous-réseau disponible pour le déploiement de l’environnement.

Remarque

Le préfixe d’adresse de sous-réseau nécessite une plage CIDR minimale de /23 pour une utilisation avec Container Apps lors de l’utilisation de l’architecture Consommation uniquement. Lorsque vous utilisez l’architecture des profils de charge de travail, une /27 ou plus grande est requise. Pour en savoir plus sur le dimensionnement du sous-réseau, consultez la vue d’ensemble de l’architecture réseau .

az network vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --location $LOCATION \
  --address-prefix 10.0.0.0/16
az network vnet subnet create \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --address-prefixes 10.0.0.0/21

Une fois le réseau virtuel créé, vous pouvez récupérer l’ID du sous-réseau d’infrastructure.

INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`

Enfin, créez l’environnement Container Apps à l’aide du réseau virtuel personnalisé déployé lors les étapes précédentes.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET

Le tableau suivant décrit les paramètres utilisés dans containerapp env create.

Paramètre Description
name Nom de l’environnement Container Apps.
resource-group Nom du groupe de ressources.
location Emplacement Azure où l’environnement est à déployer.
infrastructure-subnet-resource-id ID de ressource d’un sous-réseau pour les composants d’infrastructure et les conteneurs d’applications utilisateur.

Une fois votre environnement créé en utilisant un réseau virtuel personnalisé, vous pouvez ensuite déployer des applications conteneurs dans l’environnement.

Configuration facultative

Vous avez la possibilité de déployer un DNS privé et de définir des plages d’adresses IP réseau personnalisées pour votre environnement Container Apps.

Déploiement avec un DNS privé

Pour déployer votre application de conteneur avec un DNS privé, exécutez les commandes suivantes.

Tout d’abord, extrayez les informations identifiables de l’environnement.

ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`

Ensuite, configurez le DNS privé.

az network private-dns zone create \
  --resource-group $RESOURCE_GROUP \
  --name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --virtual-network $VNET_ID \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
  --resource-group $RESOURCE_GROUP \
  --record-set-name "*" \
  --ipv4-address $ENVIRONMENT_STATIC_IP \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN

Paramètres réseau

Il existe trois paramètres réseau facultatifs que vous pouvez choisir de définir quand vous appelez containerapp env create. Utilisez ces options quand vous avez un réseau virtuel appairé avec des plages d’adresses distinctes. La configuration explicite de ces plages garantit que les adresses utilisées par l’environnement Container Apps n’entrent pas en conflit avec d’autres plages de l’infrastructure réseau.

Vous devez soit fournir des valeurs pour ces trois propriétés, soit n’en fournir aucune. Si les valeurs ne sont pas fournies, elles sont automatiquement générées.

Paramètre Description
platform-reserved-cidr Plage d’adresses utilisée en interne pour les services d’infrastructure d’environnement. Doit avoir une taille comprise entre /23 et /12 lors de l’utilisation de l’Architecture consommation seule
platform-reserved-dns-ip Adresse IP issue de la plage platform-reserved-cidr utilisée pour le serveur DNS interne. Il ne peut pas s’agir de la première adresse de la plage ni de l’adresse du réseau. Par exemple, si platform-reserved-cidr a la valeur 10.2.0.0/16, alors platform-reserved-dns-ip ne peut pas avoir la valeur 10.2.0.0 (l’adresse réseau) ni la valeur 10.2.0.1 (l’infrastructure se réserve l’utilisation de cette adresse IP). Dans ce cas, la première adresse IP utilisable pour le DNS est 10.2.0.2.
docker-bridge-cidr Plage d’adresses attribuée au réseau de pont Docker. La taille de cette plage doit être comprise entre /28 et /12.
  • Les plages d’adresses platform-reserved-cidr et docker-bridge-cidr ne peuvent pas entrer en conflit les unes avec les autres ni avec les plages de l’un des deux sous-réseaux fournis. En outre, vérifiez que ces plages ne sont pas en conflit avec d’autres plages d’adresses incluses dans le réseau virtuel.

  • Si ces propriétés ne sont pas fournies, l’interface CLI génère automatiquement les valeurs de plage en fonction de la plage d’adresses du réseau virtuel afin d’éviter tout conflit.

Nettoyer les ressources

Si vous ne souhaitez pas continuer à utiliser cette application, vous pouvez supprimer le groupe de ressources my-container-apps. Cela supprime l’instance Azure Container Apps et tous les services associés. Cela supprime également le groupe de ressources que le service Container Apps a créé automatiquement et qui contient les composants réseau personnalisés.

Attention

La commande suivante supprime le groupe de ressources spécifié et toutes les ressources qu’il contient. Si des ressources en dehors du cadre de ce guide existent dans le groupe de ressources spécifié, elles sont également supprimées.

az group delete --name $RESOURCE_GROUP

Étapes suivantes