Partager via


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

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

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.
    Source de déploiement Sélectionnez Image conteneur.

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 la page Créer un environnement Container Apps, sous l’onglet Informations de base, entrez les valeurs suivantes :

    Paramètre Valeur
    Nom de l’environnement Entrez my-environment.
    Type d’environnement Sélectionnez Profils de charge de travail.
    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.

Vous avez également la possibilité de déployer un DNS privé pour votre environnement Container Apps. Pour découvrir plus d’informations, consultez Créer et configurer une zone DNS privée Azure.

Créez un réseau virtuel

Remarque

Pour utiliser un réseau virtuel avec Container Apps, le réseau virtuel doit avoir un sous-réseau dédié avec une plage de routage CIDR (Classless InterDomain Routing) de /23 ou supérieure lorsque vous utilisez l’environnement Consommation uniquement ou une plage CIDR de /27 ou supérieure lorsque vous utilisez l’environnement des profils de charge de travail. 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éseau.

  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 pour un environnement externe ou Interne pour un environnement interne.

  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 vous connecter à Azure à partir de l’interface CLI, exécutez la commande suivante et suivez les invites pour procéder à l’authentification.

az login

Pour être sûr d’utiliser la dernière version de l’interface CLI, exécutez la commande de mise à niveau.

az upgrade

Ensuite, installez ou mettez à jour l’extension Azure Container Apps pour l’interface CLI.

Si vous recevez des erreurs concernant des paramètres manquants lorsque vous exécutez des commandes az containerapp dans Azure CLI ou les cmdlets du module Az.App dans Azure PowerShell, assurez-vous que la dernière version de l’extension Azure Container Apps est installée.

az extension add --name containerapp --upgrade

Remarque

À compter de mai 2024, les extensions Azure CLI n’activent plus les fonctionnalités en préversion par défaut. Pour accéder aux fonctionnalités en préversion de Container Apps, installez l’extension Container Apps avec --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Maintenant que la version actuelle de l’extension ou du module est installée, inscrivez les espaces de noms Microsoft.App et Microsoft.OperationalInsights.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Définir des variables d’environnement

Définissez les variables d’environnement suivantes. Remplacez les <PLACEHOLDERS> par vos valeurs :

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

Création d’un groupe de ressources Azure

Créez un groupe de ressources pour organiser les services liés au déploiement de votre application de conteneur.

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

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 maintenant un réseau virtuel à associer à l’environnement Container Apps. Le réseau virtuel doit disposer d’un sous-réseau disponible pour le déploiement de l’environnement.

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/23

Lorsque vous utilisez l’environnement Profils de charges de travail, vous devez mettre à jour le réseau virtuel de façon à déléguer le sous-réseau à Microsoft.App/environments. Cette délégation n’est pas nécessaire pour l’environnement Consommation uniquement.

az network vnet subnet update \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --delegations Microsoft.App/environments

Une fois le réseau virtuel créé, vous pouvez maintenant effectuer une requête pour obtenir 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 en utilisant le réseau virtuel personnalisé.

Pour créer l’environnement, exécutez la commande suivante. Pour créer un environnement interne, ajoutez --internal-only.

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 avec containerapp env create.

Paramètre Description
name Nom de l’environnement Container Apps.
resource-group Nom du groupe de ressources.
logs-workspace-id (Facultatif) L’ID d’un espace de travail Log Analytics existant. S’il est omis, un espace de travail est créé pour vous.
logs-workspace-key Clé secrète client Log Analytics. Obligatoire si vous utilisez un espace de travail existant.
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.
internal-only (Facultatif) L’environnement n’utilise pas d’adresse IP statique publique. Seules les adresses IP internes disponibles dans le réseau virtuel personnalisé. (Nécessite un ID de ressource de sous-réseau d’infrastructure.)

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’environnement 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 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

Ressources supplémentaires

  • Pour utiliser l’entrée de l’étendue du réseau virtuel, vous devez configurer un DNS.

Étapes suivantes