Explore contêineres em Aplicativos de Contêiner do Azure

Concluído

O Azure Container Apps gere os detalhes do Kubernetes e da orquestração de contentores por si. Os contentores no Azure Container Apps podem utilizar qualquer runtime, linguagem de programação ou pilha de desenvolvimento à sua escolha.

Diagram showing how containers for an Azure Container App are grouped together in pods inside revision snapshots.

Os Aplicativos de Contêiner do Azure dão suporte a qualquer imagem de contêiner x86-64 (linux/amd64) baseada em Linux. Não há nenhuma imagem de contêiner base necessária e, se um contêiner falhar, ele será reiniciado automaticamente.

Configuração

O código a seguir é um exemplo da containers matriz na properties.template seção de um modelo de recurso de aplicativo de contêiner. O trecho mostra algumas das opções de configuração disponíveis ao configurar um contêiner ao usar modelos do Azure Resource Manager (ARM). As alterações na seção de configuração do modelo ARM acionam uma nova revisão do aplicativo de contêiner.

"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

Vários contentores

Você pode definir vários contêineres em um único aplicativo de contêiner para implementar o padrão sidecar. Os contêineres em um aplicativo de contêiner compartilham recursos de disco rígido e rede e experimentam o mesmo ciclo de vida do aplicativo.

Exemplos de contentores para sidecar incluem:

  • Um agente que lê logs do contêiner de aplicativo principal em um volume compartilhado e os encaminha para um serviço de log.
  • Um processo em segundo plano que atualiza um cache usado pelo contêiner de aplicativo primário em um volume compartilhado.

Nota

A execução de vários contêineres em um único aplicativo de contêiner é um caso de uso avançado. Na maioria das situações em que você deseja executar vários contêineres, como ao implementar uma arquitetura de microsserviço, implante cada serviço como um aplicativo de contêiner separado.

Para executar vários contêineres em um aplicativo de contêiner, adicione mais de um contêiner na matriz de contêineres do modelo de aplicativo de contêiner.

Registos de contentor

Você pode implantar imagens hospedadas em registros privados fornecendo credenciais na configuração de Aplicativos de Contêiner.

Para usar um registro de contêiner, defina os campos obrigatórios na matriz de registros na seção properties.configuration do modelo de recurso de aplicativo de contêiner. O campo passwordSecretRef identifica o nome do segredo no nome da matriz secrets onde você definiu a senha.

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

Com as informações do Registro adicionadas, as credenciais salvas podem ser usadas para extrair uma imagem de contêiner do registro privado quando seu aplicativo for implantado.

Limitações

Os Aplicativos de Contêiner do Azure têm as seguintes limitações:

  • Contêineres privilegiados: os Aplicativos de Contêiner do Azure não podem executar contêineres privilegiados. Se o programa tentar executar um processo que requer acesso raiz, o aplicativo dentro do contêiner enfrenta um erro de tempo de execução.
  • Sistema operacional: imagens de contêiner baseadas em Linux (linux/amd64) são necessárias.