Explore as instâncias de contêiner do Azure
O Azure Container Instances (ACI) é uma ótima solução para qualquer cenário que possa funcionar em contentores isolados, incluindo aplicações simples, automatização de tarefas e tarefas de compilação. Eis algumas das vantagens:
- Inicialização rápida: o ACI pode iniciar contêineres no Azure em segundos, sem a necessidade de provisionar e gerenciar uma máquina virtual (VM)
- Acesso a contêineres: o ACI permite expor seus grupos de contêineres diretamente à Internet com um endereço IP e um nome de domínio totalmente qualificado (FQDN)
- Segurança no nível do hipervisor: isole seu aplicativo tão completamente quanto seria 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 estejam sendo executados conforme o esperado
- Tamanhos personalizados: o ACI fornece uma utilização ótima, permitindo especificações exatas de núcleos de CPU e memória
- Armazenamento persistente: Monte arquivos do Azure compartilha diretamente em um contêiner para recuperar e persistir o estado
- Linux e Windows: agende contentores do Windows e do Linux com a mesma API.
Em cenários nos quais precisa de orquestração de contentores completa, incluindo deteção de serviços em vários contentores, dimensionamento automático e atualizações coordenadas de aplicações, recomendamos o Serviço Kubernetes do Azure (AKS).
Grupos de contentores
O recurso de nível superior nas Instâncias de Contêiner do Azure é o grupo de contêineres. Um grupo de contêineres é uma coleção de contêineres que são agendados na mesma máquina host. Os contêineres em um grupo de contêineres compartilham um ciclo de vida, recursos, rede local e volumes de armazenamento. É semelhante em conceito 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 exemplo de grupo de contêineres:
- É agendado em uma única máquina 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 recipientes. Um contentor ouve na porta 80, enquanto o outro ouve na porta 5000.
- Inclui dois compartilhamentos de arquivos do Azure como montagens de volume e cada contêiner monta um dos compartilhamentos localmente.
Nota
Atualmente, os grupos de vários contêineres suportam apenas contêineres Linux. Para contêineres do Windows, as Instâncias de Contêiner do Azure só dão suporte à implantação de uma única instância.
Implementação
Há duas maneiras comuns de implantar um grupo de vários contêineres: usar um modelo do Gerenciador de Recursos ou um arquivo YAML. Um modelo do Gerenciador de Recursos é 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 YAML é recomendado quando sua implantação inclui apenas instâncias de contêiner.
Alocação de recursos
As Instâncias de Contêiner do Azure alocam recursos como CPUs, memória e, opcionalmente, GPUs (visualização) a um grupo de contêineres adicionando as solicitações de recursos das instâncias no grupo. Usando 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 receberá duas CPUs.
Rede
Os 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 dentro do grupo compartilham um namespace de porta, o mapeamento de porta não é suportado. Os contêineres dentro de um grupo podem entrar em contato uns com os outros via localhost nas portas que eles expõem, mesmo que essas portas não sejam expostas externamente no endereço IP do grupo.
Armazenamento
Você pode especificar volumes externos para montagem em um grupo de contêineres. Você pode mapear esses volumes em caminhos específicos dentro dos contêineres individuais em um grupo. Os volumes suportados incluem:
- Partilha de ficheiros do Azure
- Segredo
- Diretório vazio
- Repositório git clonado
Cenários comuns
Os grupos de vários contêineres são úteis nos casos em que você deseja dividir uma única tarefa funcional em algumas imagens de contêiner. Essas imagens podem ser entregues por equipes diferentes e ter requisitos de recursos separados.
Exemplos de utilização podem incluir:
- Um contêiner que serve um aplicativo Web e um contêiner que extrai o 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 registro em log coleta os logs e as métricas saídas pelo aplicativo principal e os grava no armazenamento de longo prazo.
- Um contêiner de aplicativo e um contêiner de monitoramento. O contêiner de monitoramento periodicamente faz uma solicitação ao aplicativo para garantir que ele esteja sendo executado e respondendo corretamente, e gera um alerta se não estiver.
- Um contêiner front-end e um contêiner back-end. O front-end pode servir um aplicativo Web, com o back-end executando um serviço para recuperar dados.