Azure Container Instances
Lancez en quelques secondes une application conteneurisée avec ACI sans gérer de serveurs, configurez les variables d’environnement et les montages de volumes, et comprenez la facturation d’ACI.
Azure Container Instances est une leçon Cloud & IT Cert Prep gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cloud & IT Cert Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Que sont Azure Container Instances ?
Azure Container Instances (ACI) constitue le moyen le plus rapide d’exécuter une charge de travail conteneurisée dans Azure sans gérer de serveurs ni d’orchestrateurs. Vous fournissez une image de conteneur, puis Azure l’exécute en quelques secondes sur une infrastructure mutualisée entre plusieurs clients. ACI convient particulièrement aux tâches de courte durée, aux traitements par lots, aux agents de compilation et aux charges de travail déclenchées par des événements, pour lesquelles le déploiement d’un cluster Kubernetes complet représenterait une surcharge excessive.
Créer une instance de conteneur
Lancez un conteneur ACI à l’aide d’une seule commande az container create. Indiquez l’image, le groupe de ressources, le processeur et la mémoire. ACI extrait l’image, alloue les ressources et démarre le conteneur, généralement en 5 à 10 secondes. Chaque instance de conteneur reçoit un nom de domaine complet (FQDN) unique si vous lui attribuez un libellé de nom DNS, ce qui la rend immédiatement accessible depuis Internet.
# Run an Nginx container accessible from the internet
az container create \
--name my-nginx \
--resource-group MyRG \
--image nginx:latest \
--cpu 1 \
--memory 1 \
--dns-name-label my-nginx-demo \
--ports 80
# Access at: http://my-nginx-demo.<region>.azurecontainer.ioVariables d’environnement et valeurs sécurisées
Transmettez la configuration aux conteneurs ACI à l’aide de variables d’environnement indiquées lors de la création. Pour les valeurs sensibles, telles que les clés d’API ou les mots de passe, utilisez des variables d’environnement sécurisées : elles ne sont plus affichées dans le portail Azure ni dans la sortie de la CLI après le déploiement, ce qui évite leur divulgation accidentelle dans les journaux ou les pistes d’audit. Les valeurs sécurisées restent accessibles à l’intérieur du conteneur au moment de l’exécution, comme des variables d’environnement ordinaires.
# Pass regular and secure environment variables
az container create \
--name my-app \
--resource-group MyRG \
--image mycontainerregistry.azurecr.io/myapp:v1.0 \
--environment-variables APP_ENV=production \
--secure-environment-variables \
DATABASE_PASSWORD='super-secret-password' \
API_KEY='my-api-key'
# View logs from the running container
az container logs --name my-app --resource-group MyRGFacturation et allocation des ressources ACI
ACI facture à la seconde, en fonction des cœurs de processeur et de la mémoire en GB que vous allouez, sans durée minimale de facturation. Vous payez uniquement pendant l’exécution du conteneur : dès qu’il s’arrête, la facturation s’arrête. ACI est ainsi particulièrement économique pour les charges de travail de courte durée. Vous pouvez allouer de 0,1 à 4 cœurs de processeur et de 0,1 à 16 GB de mémoire par groupe de conteneurs, selon les combinaisons prises en charge.
# Small: 0.5 CPU, 0.5 GB memory
az container create --name small-task --resource-group MyRG \
--image my-batch-image:latest --cpu 0.5 --memory 0.5 \
--restart-policy Never # Don't restart after completion
# Large: 4 CPU, 16 GB memory for intensive tasks
az container create --name ml-inference --resource-group MyRG \
--image ml-model:latest --cpu 4 --memory 16Stratégies de redémarrage
ACI prend en charge trois stratégies de redémarrage qui contrôlent le comportement du conteneur après sa sortie. Always (valeur par défaut) redémarre le conteneur chaque fois qu’il s’arrête, ce qui convient aux services de longue durée. Never exécute le conteneur une seule fois et le laisse dans un état arrêté, ce qui est idéal pour les traitements par lots. OnFailure redémarre le conteneur uniquement lorsque son code de sortie est différent de zéro, ce qui est utile pour les mécanismes de nouvelle tentative en cas d’erreur.
# Batch job: run once, never restart
az container create \
--name data-processor \
--resource-group MyRG \
--image my-batch-image:latest \
--restart-policy Never \
--environment-variables BATCH_DATE=2025-01-01
# Check the container's final state
az container show \
--name data-processor \
--resource-group MyRG \
--query '{state:instanceView.state, exitCode:instanceView.currentState.exitCode}'Groupes de conteneurs : déploiements multconteneurs
Un groupe de conteneurs est un ensemble de conteneurs qui partagent un cycle de vie, un réseau et un stockage, à l’image d’un Pod Kubernetes. Les conteneurs d’un même groupe partagent une adresse IP locale et un espace de noms de ports, ce qui leur permet de communiquer via localhost. Un schéma courant consiste à réunir un conteneur d’application principal et un conteneur auxiliaire, par exemple un agent de journalisation ou un proxy, dans le même groupe défini à l’aide d’un modèle YAML ou ARM.
# multi-container.yaml
apiVersion: '2021-09-01'
location: eastus
name: my-container-group
properties:
containers:
- name: app
properties:
image: myapp:v1.0
ports: [{port: 80}]
resources: {requests: {cpu: 1, memoryInGb: 1}}
- name: log-forwarder
properties:
image: fluent-bit:latest
resources: {requests: {cpu: 0.5, memoryInGb: 0.5}}
osType: Linux
restartPolicy: Always
type: Microsoft.ContainerInstance/containerGroups
# Deploy from YAML
# az container create --resource-group MyRG --file multi-container.yamlMontages de volumes : intégration d’Azure Files
Par défaut, les conteneurs ACI sont sans état : les données écrites dans le système de fichiers du conteneur sont perdues lorsque celui-ci redémarre. Montez un partage Azure Files en tant que volume pour conserver les données lors des redémarrages du conteneur ou les partager entre plusieurs conteneurs du même groupe. Indiquez le nom du compte de stockage, sa clé et le nom du partage de fichiers lors de la création de l’instance de conteneur.
# Mount an Azure Files share for persistent storage
az container create \
--name stateful-app \
--resource-group MyRG \
--image myapp:v1.0 \
--azure-file-volume-account-name mystorageaccount \
--azure-file-volume-account-key '<storage-account-key>' \
--azure-file-volume-share-name myfileshare \
--azure-file-volume-mount-path /data
# Data written to /data persists in the Azure Files shareInstances de conteneurs avec GPU
ACI prend en charge les instances de conteneurs avec GPU (K80, V100) pour l’inférence en ML, le traitement vidéo et les charges de travail de calcul scientifique. Les instances avec GPU sont disponibles dans certaines régions et nécessitent des conteneurs Linux. Elles sont facturées par GPU et par seconde, ce qui les rend économiques pour les scénarios d’inférence ponctuelle où vous démarrez un conteneur avec GPU, exécutez le modèle, puis le supprimez immédiatement, à un coût bien inférieur à celui d’une VM avec GPU dédiée fonctionnant 24 h/24 et 7 j/7.
# Create a GPU-enabled container instance
az container create \
--name gpu-inference \
--resource-group MyRG \
--image my-ml-model:latest \
--gpu-count 1 \
--gpu-sku V100 \
--cpu 4 \
--memory 16 \
--os-type LinuxACI avec un réseau virtuel
Déployez les groupes de conteneurs ACI dans un sous-réseau dédié au sein d’un VNet afin de leur attribuer des adresses IP privées et de leur permettre d’accéder à d’autres ressources connectées au VNet (bases de données, VMs) sans les exposer à Internet. ACI intégré à un VNet nécessite un sous-réseau dédié et délégué (délégué à Microsoft.ContainerInstance/containerGroups) et ne prend pas en charge l’attribution d’une adresse IP publique.
# Create an ACI container in a VNet
az container create \
--name private-task \
--resource-group MyRG \
--image myapp:v1.0 \
--vnet MyVNet \
--subnet ContainerSubnet \
--restart-policy Never
# The container gets a private IP from the subnet CIDR
# It can reach VNet resources (SQL, Redis, VMs) on private IPsACI comme nœud Kubelet virtuel
ACI s’intègre à AKS en tant que nœud virtuel grâce au projet open source Virtual Kubelet. Lorsqu’un cluster AKS connaît une demande ponctuelle qui dépasse la capacité de ses nœuds VM, Kubernetes peut planifier des Pods sur un nœud ACI virtuel, ce qui démarre de véritables instances de conteneurs ACI. Cette approche fournit une capacité d’augmentation instantanée illimitée sans préprovisionner de nœuds VM supplémentaires, et vous ne payez le calcul ACI que pendant la période de forte demande.
# Enable virtual nodes on an AKS cluster
az aks enable-addons \
--name myAKSCluster \
--resource-group MyRG \
--addons virtual-node \
--subnet-name VirtualNodeSubnet
# Schedule a burst pod on ACI via node selector
# spec:
# nodeSelector:
# kubernetes.io/role: agent
# beta.kubernetes.io/os: linux
# type: virtual-kubelet
# tolerations:
# - key: virtual-kubelet.io/provider
# operator: ExistsQuand utiliser ACI, AKS ou App Service
Choisissez ACI pour les tâches de courte durée, les traitements par lots, les agents de compilation CI et les conteneurs ponctuels lorsqu’il est inutile d’ajouter la surcharge de Kubernetes. Choisissez AKS pour les microservices multconteneurs de longue durée nécessitant la découverte de services, des contrôles d’intégrité, des mises à jour progressives et la mise en réseau d’un cluster. Choisissez App Service si vous souhaitez bénéficier des fonctionnalités pratiques d’une plateforme en tant que service (emplacements de déploiement, certificats managés, authentification intégrée) sans gérer vous-même le réseau des conteneurs.
Vérification rapide
Vérifiez votre compréhension des concepts de Microsoft Azure Fundamentals (AZ-900) abordés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris que Azure Container Instances exécutent des conteneurs en quelques secondes sans gestion de serveurs et sont facturées à la seconde pour le processeur et la mémoire, que les groupes de conteneurs permettent à plusieurs conteneurs de partager le réseau et le stockage comme dans un Pod Kubernetes, et que les stratégies de redémarrage (Always, Never, OnFailure) contrôlent le cycle de vie du conteneur après sa sortie. Nous allons maintenant découvrir les concepts Kubernetes pour Azure.
Questions Fréquemment Posées
La leçon « Azure Container Instances » est-elle gratuite ?
Oui — le texte complet de « Azure Container Instances » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cloud & IT Cert Prep, passe à CoddyKit PRO. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Azure Container Instances » ?
Lancez en quelques secondes une application conteneurisée avec ACI sans gérer de serveurs, configurez les variables d’environnement et les montages de volumes, et comprenez la facturation d’ACI. Tu pratiques Cloud & IT Cert Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cloud & IT Cert Prep ?
Aucune expérience préalable n'est requise. Cloud & IT Cert Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Azure Container Instances » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cloud & IT Cert Prep ?
Oui. Chaque leçon Cloud & IT Cert Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Azure Container Registry
- Azure Container Instances
- Concepts Kubernetes pour Azure
- Déploiement de charges de travail sur AKS