Explorar Instâncias de Contêiner do Azure
O ACI (Instâncias de Contêiner do Azure) é uma ótima solução para qualquer cenário que possa operar em contêineres isolados, incluindo aplicativos simples, automação de tarefas e criação de trabalhos. Estes são alguns dos benefícios:
- Início rápido: A ACI pode iniciar contêineres no Azure em segundos sem precisar provisionar e gerenciar VM (máquina virtual)
- Acesso ao contêiner: as ACI permitem expor seus grupos de contêineres diretamente à Internet por meio de um endereço IP e um FQDN (nome de domínio totalmente qualificado)
- Segurança no nível do hipervisor: isole seu aplicativo completamente, como se ele estivesse em uma VM
- Dados do cliente: o serviço ACI armazena os dados mínimos do cliente necessários para garantir que seus grupos de contêineres sejam executados conforme o esperado
- Tamanhos personalizados: as ACI fornecem uma utilização ideal ao permitir especificações exatas de memória e núcleos da CPU
- Armazenamento persistente: monte compartilhamentos de Arquivos do Azure diretamente em um contêiner para recuperar e fazer o estado perdurar
- Linux e Windows: agendar contêineres do Windows e do Linux usando a mesma API.
Para cenários em que você precisa de orquestração de contêineres completa, incluindo descoberta do serviço em vários contêineres, dimensionamento automático e atualizações de aplicativo coordenadas, recomendamos o AKS (Serviço de Kubernetes do Azure).
Grupos de contêineres
O recurso de nível superior em Instâncias de Contêiner do Azure é um grupo de contêineres. Um grupo de contêineres é uma coleção de contêineres que são agendados no mesmo computador host. Os contêineres de um grupo de contêineres compartilham ciclo de vida, recursos, rede local e volumes de armazenamento. Conceitualmente, ele é semelhante a um pod no Kubernetes.
O diagrama a seguir mostra um exemplo de um grupo de contêineres que inclui vários contêineres:
Este grupo de contêineres de exemplo:
- Está agendado em um único computador host.
- É atribuído um rótulo de nome DNS.
- Expõe um único endereço IP público, com uma porta exposta.
- Consiste em dois contêineres. Um contêiner escuta na porta 80, enquanto o outro escuta na porta 5000.
- Inclui dois compartilhamentos de arquivos do Azure como montagens de volume e cada contêiner monta um dos compartilhamentos localmente.
Observação
Atualmente, os grupos com vários contêineres dão suporte apenas aos contêineres do Linux. Para contêineres do Windows, as Instâncias de Contêiner do Azure dão suporte apenas à implantação de uma única instância.
Implantação
Existem duas maneiras comuns de implantar um grupo com vários contêineres: usar um modelo do Resource Manager ou um arquivo YAML. Um modelo do Resource Manager é recomendado quando você precisa implantar mais recursos de serviço do Azure (por exemplo, um compartilhamento de Arquivos do Azure) ao implantar as instâncias de contêiner. Devido à natureza mais concisa do formato YAML, um arquivo desse formato é recomendável quando a implantação incluir somente instâncias de contêiner.
Alocação de recurso
As Instâncias de Contêiner do Azure alocam recursos como CPUs, memória e GPUs (versão prévia) para um grupo de contêineres adicionando as solicitações de recurso das instâncias no grupo. Usando os recursos de CPU como exemplo, se você criar um grupo de contêineres com duas instâncias, cada uma solicitando uma CPU, o grupo de contêineres terá duas CPUs alocadas.
Rede
Grupos de contêineres compartilham um endereço IP e um namespace de porta nesse endereço IP. Para permitir que clientes externos alcancem um contêiner dentro do grupo, você deve expor a porta no endereço IP e do contêiner. Como os contêineres no grupo compartilham um namespace de porta, o mapeamento de porta não tem suporte. Os contêineres de um grupo podem se comunicar uns com os outros por meio do localhost nas portas às quais eles foram expostos, mesmo que essas portas não sejam expostas externamente no endereço IP do grupo.
Armazenamento
Você pode especificar volumes externos para montar dentro de um grupo de contêineres. Você pode mapear os volumes para caminhos específicos dentro dos contêineres individuais em um grupo. Os volumes com suporte incluem:
- Compartilhamento de arquivos do Azure
- Segredo
- Diretório vazio
- Repositório git clonado
Cenários comuns
Grupos com vários contêineres são úteis nos casos em que você deseja dividir apenas uma tarefa funcional em várias imagens de contêiner. Essas imagens podem ser fornecidas por equipes diferentes e têm outros requisitos de recursos.
Os exemplos de uso podem incluir:
- Um contêiner que atende a um aplicativo Web e um contêiner efetuando pull do conteúdo mais recente do controle do código-fonte.
- Um contêiner de aplicativo e um contêiner de log. O contêiner de log coleta logs e métricas de saída do aplicativo principal e grava-as em armazenamento de longo prazo.
- Um contêiner de aplicativo e um contêiner de monitoramento. O contêiner de monitoramento faz uma solicitação periódica ao aplicativo para garantir que ele esteja em execução e respondendo corretamente e emite um alerta em caso negativo.
- Um contêiner de front-end e um contêiner de back-end. O de front-end pode servir a um aplicativo Web, com o de back-end executando um serviço para recuperar dados.