Explorer des conteneurs dans Azure Container Apps
Azure Container Apps gère automatiquement les détails de Kubernetes et l’orchestration de conteneurs. Dans Azure Container Apps, les conteneurs peuvent utiliser le runtime, le langage de programmation et la pile de développement de votre choix.
Azure Container Apps prend en charge n’importe quelle image conteneur x86-64 (linux/amd64
) Linux. Il n’y a pas d’image conteneur de base requise, et si un conteneur subit une défaillance, il redémarre automatiquement.
Configuration
Voici un exemple de code containers
dans la section properties.template
d’un modèle de ressource d’application conteneur. L’extrait montre certaines des options de configuration disponibles lors de la configuration d’un conteneur lors de l’utilisation de modèles Azure Resource Manager (ARM). Les modifications apportées à la section de configuration de modèle ARM déclenchent une nouvelle révision de l’application conteneur.
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"env": [
{
"name": "HTTP_PORT",
"value": "80"
},
{
"name": "SECRET_VAL",
"secretRef": "mysecret"
}
],
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myfiles",
"volumeName": "azure-files-volume"
}
]
"probes":[
{
"type":"liveness",
"httpGet":{
"path":"/health",
"port":8080,
"httpHeaders":[
{
"name":"Custom-Header",
"value":"liveness probe"
}]
},
"initialDelaySeconds":7,
"periodSeconds":3
// file is truncated for brevity
Plusieurs conteneurs
Vous pouvez définir plusieurs conteneurs dans une application de conteneur unique pour implémenter le modèle sidecar. Les conteneurs d’une application de conteneur se partagent les ressources disque dur et réseau et connaissent le même cycle de vie de l’application.
Voici quelques exemples de conteneurs sidecar :
- Un agent qui lit les journaux à partir du conteneur d’application principal sur un volume partagé et les transfère à un service de journalisation.
- Un processus en arrière-plan qui actualise un cache utilisé par le conteneur d’application principal dans un volume partagé.
Remarque
L’exécution de plusieurs conteneurs dans une application de conteneur unique est un cas d’usage avancé. Dans la plupart des cas où vous souhaitez exécuter plusieurs conteneurs, par exemple lors de l’implémentation d’une architecture de microservice, déployez chaque service en tant qu’application de conteneur distincte.
Pour exécuter plusieurs conteneurs dans une application de conteneur, ajoutez plusieurs conteneurs dans le tableau des conteneurs du modèle d’application de conteneur.
Registres de conteneurs
Vous pouvez déployer des images hébergées sur des registres privés dans lesquels les informations d’identification sont fournies par le biais de la configuration Container Apps.
Pour utiliser un registre de conteneurs, vous définissez les champs requis dans le tableau registries dans la section properties.configuration du modèle de ressource d’application conteneur. Le champ passwordSecretRef identifie le nom du secret dans le nom du tableau secrets où vous avez défini le mot de passe.
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
L’ajout des informations de registre permet d’utiliser les informations d’identification enregistrées pour extraire une image conteneur du registre privé lorsque votre application est déployée.
Limitations
Azure Container Apps présente les limitations suivantes :
- Conteneurs privilégiés : les applications Azure Container ne peuvent pas exécuter des conteneurs privilégiés. Si votre programme tente d’exécuter un processus exigeant un accès racine, l’application située à l’intérieur du conteneur rencontre une erreur d’exécution.
- Système d’exploitation : des images conteneur Linux (
linux/amd64
) sont requises.