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.
- Dans la barre de recherche supérieure, recherchez Applications conteneur.
- Dans les résultats de la recherche, sélectionnez Applications conteneur.
- Cliquez sur le bouton Créer.
Onglet Informations de base
Sous l’onglet Informations de base, effectuez les actions suivantes.
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.
Sélectionnez la région appropriée.
Paramètre Valeur Région Sélectionnez USA Centre. Dans le champ Créer un environnement Container Apps, sélectionnez Créer.
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 Profils de charge de travail. Redondance de zone Sélectionnez Désactivé Sélectionnez Supervision pour créer un espace de travail Log Analytics.
Sélectionnez Azure Log Analytics comme Destination des journaux.
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.
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 .
Sélectionnez l’onglet Réseaux pour créer un réseau virtuel.
Sélectionnez Oui en regard de l’option Utiliser votre propre réseau virtuel.
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. Cliquez sur le bouton OK.
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. Cliquez sur le bouton OK.
Sous Adresse IP virtuelle, sélectionnez Externe.
Sélectionnez Créer.
Déployer l’application de conteneur
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.
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.
- Si vous n’en avez pas, vous pouvez en créer un gratuitement.
- 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 <ESPACES RÉSERVÉS> 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 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
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 applicable à 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 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
etdocker-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