Tutoriel : Déployer un groupe multiconteneur à l’aide d’un fichier YAML
Azure Container Instances prend en charge le déploiement de plusieurs conteneurs sur un seul hôte à l’aide d’un groupe de conteneurs. Un groupe de conteneurs est utile lors de la création d’une annexe d’application pour la journalisation, la surveillance ou toute autre configuration dans laquelle un service a besoin d’un deuxième processus associé.
Dans ce tutoriel, vous suivez des étapes pour exécuter une configuration side-car à deux conteneurs en déployant un fichier YAML à l’aide de l’interface Azure CLI. Un fichier YAML fournit un format concis destiné à spécifier les paramètres d’instance. Vous allez apprendre à effectuer les actions suivantes :
- Configurer un fichier YAML
- Déployer le groupe de conteneurs
- Afficher les journaux des conteneurs
Notes
Les groupes à plusieurs conteneurs sont actuellement restreints aux conteneurs Linux.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Configurer un fichier YAML
Pour déployer un groupe multiconteneur avec la commande az container create dans Azure CLI, vous devez spécifier la configuration du groupe de conteneurs dans un fichier YAML. Vous devez ensuite transmettre le fichier YAML à la commande en tant que paramètre.
Commencez par copier le YAML suivant dans un nouveau fichier nommé deploy-aci.yaml. Dans Azure Cloud Shell, vous pouvez utiliser Visual Studio Code pour créer le fichier dans votre répertoire de travail :
code deploy-aci.yaml
Ce fichier YAML définit un groupe de conteneurs nommé « myContainerGroup », qui comprend deux conteneurs, une adresse IP publique et deux ports exposés. Les conteneurs sont déployés à partir d’images publiques de Microsoft. Le premier conteneur du groupe exécute une application web accessible sur Internet. Le second conteneur, le side-car, envoie régulièrement des requêtes HTTP à l’application web en cours d’exécution dans le premier conteneur par le biais du réseau local du groupe de conteneurs.
apiVersion: 2019-12-01
location: eastus
name: myContainerGroup
properties:
containers:
- name: aci-tutorial-app
properties:
image: mcr.microsoft.com/azuredocs/aci-helloworld:latest
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 80
- port: 8080
- name: aci-tutorial-sidecar
properties:
image: mcr.microsoft.com/azuredocs/aci-tutorial-sidecar
resources:
requests:
cpu: 1
memoryInGb: 1.5
osType: Linux
ipAddress:
type: Public
ports:
- protocol: tcp
port: 80
- protocol: tcp
port: 8080
tags: {exampleTag: tutorial}
type: Microsoft.ContainerInstance/containerGroups
Pour utiliser un registre d’images conteneur privé, ajoutez la propriété imageRegistryCredentials
au groupe de conteneurs en modifiant les valeurs pour votre environnement :
imageRegistryCredentials:
- server: imageRegistryLoginServer
username: imageRegistryUsername
password: imageRegistryPassword
Déployer le groupe de conteneurs
Créez un groupe de ressources avec la commande az group create :
az group create --name myResourceGroup --location eastus
Déployez le groupe de conteneurs avec la commande az container create, en transmettant le fichier YAML en tant qu’argument :
az container create --resource-group myResourceGroup --file deploy-aci.yaml
Après quelques secondes, vous devriez recevoir une réponse initiale d’Azure.
Afficher l’état du déploiement
Pour afficher l’état du déploiement, utilisez la commande az container show suivante :
az container show --resource-group myResourceGroup --name myContainerGroup --output table
Pour voir l’application en cours d’exécution, accédez à son adresse IP dans votre navigateur. Par exemple, l’adresse IP est 52.168.26.124
dans cet exemple de sortie :
Name ResourceGroup Status Image IP:ports Network CPU/Memory OsType Location
---------------- --------------- -------- -------------------------------------------------------------------------------------------------- -------------------- --------- --------------- -------- ----------
myContainerGroup danlep0318r Running mcr.microsoft.com/azuredocs/aci-tutorial-sidecar,mcr.microsoft.com/azuredocs/aci-helloworld:latest 20.42.26.114:80,8080 Public 1.0 core/1.5 gb Linux eastus
Afficher les journaux d’activité du conteneur
Consultez la sortie du journal d’un conteneur à l’aide de la commande az container logs. L’argument --container-name
spécifie le conteneur à partir duquel extraire les journaux d’activité. Dans cet exemple, le conteneur aci-tutorial-app
est spécifié.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app
Sortie :
listening on port 80
::1 - - [02/Jul/2020:23:17:48 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:51 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:54 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
Pour afficher les journaux du conteneur annexe, exécutez une commande similaire en spécifiant le conteneur aci-tutorial-sidecar
.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar
Sortie :
Every 3s: curl -I http://localhost 2020-07-02 20:36:41
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 1663 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 29 Nov 2017 06:40:40 GMT
ETag: W/"67f-16006818640"
Content-Type: text/html; charset=UTF-8
Content-Length: 1663
Date: Thu, 02 Jul 2020 20:36:41 GMT
Connection: keep-alive
Comme vous pouvez le voir, le side-car envoie régulièrement une requête HTTP à l’application web principale via le réseau local du groupe pour vérifier qu’il fonctionne. Cet exemple d’annexe peut être développé afin de déclencher une alerte après réception d’un code de réponse HTTP autre que 200 OK
.
Étapes suivantes
Dans ce didacticiel, vous avez utilisé un fichier YAML pour déployer un groupe multiconteneur dans Azure Container Instances. Vous avez appris à :
- Configurer un fichier YAML pour un groupe multiconteneur
- Déployer le groupe de conteneurs
- Afficher les journaux des conteneurs
Vous pouvez aussi spécifier un groupe multiconteneur à l’aide d’un modèle Resource Manager. Un modèle Resource Manager peut être facilement adapté pour les scénarios lorsque vous avez besoin de déployer d’autres ressources de service Azure avec le groupe de conteneurs.