Explorer des conteneurs dans Azure Container Apps

Effectué

Azure Container Apps gère les détails de Kubernetes et de l’orchestration de conteneurs pour vous. Les conteneurs dans Azure Container Apps peuvent utiliser n’importe quel runtime, langage de programmation ou pile de développement de votre choix.

Diagramme montrant comment les conteneurs d’une application conteneur Azure sont regroupés dans des pods à l’intérieur de captures instantanées de révision.

Azure Container Apps prend en charge toute image de conteneur Linux x86-64 (linux/amd64). Il n’existe aucune image conteneur de base requise et, si un conteneur se bloque, il redémarre automatiquement.

Configuration

Le code suivant est un exemple du tableau 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 ARM du modèle déclenchent une nouvelle révision d’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 conteneur partagent le disque dur et les ressources réseau et connaissent le même cycle de vie d’application.

Voici quelques exemples de conteneurs side-car :

  • Agent qui lit les logs à partir du conteneur d'application principal sur un volume partagé et les transmet à un service de journalisation.
  • Processus en arrière-plan qui actualise un cache utilisé par le conteneur d’application principal dans un volume partagé.

Note

L’exécution de plusieurs conteneurs dans une application 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 conteneur distincte.

Pour exécuter plusieurs conteneurs dans une application conteneur, ajoutez plusieurs conteneurs dans le tableau de conteneurs du modèle d’application conteneur.

Registres de conteneurs

Vous pouvez déployer des images hébergées sur des registres privés en fournissant des informations d’identification dans la configuration container Apps.

Pour utiliser un registre de conteneurs, vous définissez les champs requis dans le tableau de registres 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 de secrets où vous avez défini le mot de passe.

{
  ...
  "registries": [{
    "server": "docker.io",
    "username": "my-registry-user-name",
    "passwordSecretRef": "my-password-secret-name"
  }]
}

Avec les informations de Registre ajoutées, les informations d’identification enregistrées peuvent être utilisé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: Azure Container Apps ne peut pas exécuter de conteneurs privilégiés. Si votre programme tente d’exécuter un processus nécessitant un accès racine, l’application à l’intérieur du conteneur rencontre une erreur d’exécution.
  • système d’exploitation: les images conteneur basées sur Linux (linux/amd64) sont requises.