Présentation de la technologie
Azure Container Instances (ACI) est une solution « Container-as-a-Service » (CaaS) proposée par Microsoft Azure, permettant d’exécuter des conteneurs directement dans le cloud sans avoir à gérer l’infrastructure sous-jacente. ACI offre une alternative simple et rapide aux orchestrateurs complexes comme Kubernetes pour des charges de travail nécessitant un déploiement rapide ou temporaire.
Principaux avantages :
- Simplicité : Pas besoin de gérer des machines virtuelles ou des orchestrateurs.
- Flexibilité : Prise en charge des conteneurs Linux et Windows.
- Isolation sécurisée : Chaque conteneur s’exécute dans un environnement isolé grâce à l’isolation par hyperviseur.
- Mise en œuvre rapide : Déploiement en quelques secondes via le portail Azure, CLI ou API REST.
- Tarification à la seconde : Paiement uniquement pour les ressources utilisées.
Cas d’usage :
- Traitement de données ponctuelles ou par lots.
- Hébergement temporaire d’applications ou d’API.
- Extension élastique des clusters Kubernetes via Virtual Kubelet.
- Applications événementielles intégrées avec Azure Logic Apps ou Functions.
—
Mise en place technique
Étape 1 : Créer une instance de conteneur
Via le portail Azure :
- Connectez-vous au portail Azure.
- Cliquez sur Créer une ressource > Conteneurs > Instances de conteneur.
- Configurez les paramètres dans l’onglet Informations de base :
- Abonnement : Sélectionnez votre abonnement Azure.
- Groupe de ressources : Choisissez un groupe existant ou créez-en un nouveau.
- Nom du conteneur : Donnez un nom unique (ex. my-container).
- Image source : Sélectionnez une image Docker publique (ex. nginx) ou privée via Azure Container Registry (ACR).
- Système d’exploitation : Choisissez Linux ou Windows selon vos besoins.
- Dans l’onglet Mise en réseau, configurez :
- Type d’accès réseau : Public ou privé.
- Nom DNS (si public) pour accéder au conteneur via Internet.
- Cliquez sur Vérifier + créer, puis sur Créer.
Via Azure CLI :
bash
az container create \
–resource-group my-resource-group \
–name my-container \
–image nginx \
–cpu 1 \
–memory 1 \
–dns-name-label my-container-dns \
–ports 80
—
Étape 2 : Configurer le stockage persistant
Par défaut, les instances ACI sont stateless, mais vous pouvez monter un stockage persistant si nécessaire.
- Créez un partage de fichiers Azure dans un compte de stockage existant :
bash
az storage share create –name aci-share –account-name mystorageaccount
- Montez le partage dans votre instance ACI :
bash
az container create \
–resource-group my-resource-group \
–name my-container \
–image nginx \
–azure-file-volume-account-name mystorageaccount \
–azure-file-volume-account-key <account-key> \
–azure-file-volume-share-name aci-share \
–azure-file-volume-mount-path /mnt/data
—
Étape 3 : Intégration avec Azure Container Registry (ACR)
Pour utiliser une image privée stockée dans ACR :
- Connectez votre ACR à votre instance ACI via un rôle « acrpull » :
bash
az role assignment create \
–assignee <service-principal-id> \
–scope $(az acr show –name myregistry –query id –output tsv) \
–role acrpull
- Déployez l’image depuis ACR :
bash
az container create \
–resource-group my-resource-group \
–name my-private-container \
–image myregistry.azurecr.io/myimage:latest \
–registry-login-server myregistry.azurecr.io \
–registry-username <username> \
–registry-password <password>
—
Exploitation technique courante
Surveillance et gestion
- Consultez les journaux du conteneur :
bash
az container logs –resource-group my-resource-group –name my-container
- Accédez à la console interactive du conteneur :
bash
az container exec –resource-group my-resource-group –name my-container –exec-command « /bin/bash »
Mise à jour des instances
Pour mettre à jour une instance avec une nouvelle image, supprimez-la puis recréez-la avec l’image mise à jour.
Sécurisation des instances
- Limitez l’accès réseau en utilisant des réseaux virtuels privés pour vos instances ACI.
- Activez HTTPS pour les points d’accès publics.
Utilisation avancée avec Kubernetes (Virtual Kubelet)
Pour étendre dynamiquement un cluster AKS avec ACI :
- Activez Virtual Kubelet dans votre cluster AKS.
- Configurez les pods pour s’exécuter dans ACI lorsque la capacité du cluster est atteinte.
—
Bonnes pratiques
- Optimisation des coûts :
- – Utilisez des instances Spot pour les charges non critiques afin de réduire les coûts.
- Surveillance proactive :
- Intégrez Azure Monitor pour suivre les performances et détecter les anomalies.
- Sécurisation renforcée :
- Stockez les secrets sensibles dans Azure Key Vault et configurez-les comme variables d’environnement.
- Automatisation CI/CD :
- Intégrez vos pipelines avec GitHub Actions ou Azure DevOps pour déployer automatiquement vos conteneurs.
- Documentation interne :
- Maintenez une documentation claire sur vos configurations et processus liés à ACI.
En maîtrisant ces fonctionnalités, vous serez capable d’exploiter pleinement Azure Container Instances pour déployer rapidement vos applications conteneurisées tout en optimisant leur gestion et leur sécurité dans le cloud Azure.