Implementar 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 compartilham um ciclo de vida, recursos, rede local e volumes de armazenamento.
O que saber sobre grupos de contêineres
Vamos examinar alguns detalhes sobre grupos de contêineres para Instâncias de Contêiner do Azure.
Um grupo de contêineres é semelhante a um pod no Kubernetes. Um pod normalmente tem um mapeamento 1:1 com um contêiner, mas um pod pode conter vários contêineres. Os contêineres em um pod de vários contêineres podem compartilhar recursos relacionados.
As Instâncias de Contêiner do Azure alocam recursos para um grupo com vários contêineres adicionando as solicitações de recurso de todos os contêineres no grupo. Os recursos podem incluir itens como CPUs, memória e GPUs.
Considere um grupo de contêineres que tem dois contêineres que cada um requer recursos de CPU. Cada contêiner solicita uma CPU. As Instâncias de Contêiner do Azure aloca duas CPUs para o grupo de contêineres.
Há duas maneiras comuns de implantar um grupo com vários contêineres: usar modelos do ARM (Azure Resource Manager) ou arquivos YAML.
Modelo do ARM. Um modelo do ARM é recomendado para implantar outros recursos de serviço do Azure quando você implanta suas instâncias de contêiner, como um compartilhamento de Arquivos do Azure.
Arquivo YAML. Devido à natureza concisa do formato YAML, um arquivo YAML é recomendável quando a implantação incluir somente instâncias de contêiner.
Os grupos de contêineres podem compartilhar um endereço IP externo, pelo menos uma porta nesse endereço IP e um rótulo DNS com um FQDN.
Acesso do cliente externo. Você deve expor a porta no endereço IP e no contêiner para permitir que clientes externos cheguem a um contêiner em seu grupo.
Mapeamento de porta. O mapeamento de porta não é compatível porque os contêineres em um grupo compartilham um namespace de porta.
Grupos excluídos. Quando um grupo de contêineres é excluído, seu endereço IP e FQDN são liberados.
Exemplo de configuração
Considere o exemplo a seguir de um grupo de vários contêineres com dois contêineres.
O grupo de vários contêineres tem as seguintes características e configuração:
- O grupo de contêineres é agendado em um único computador host e recebe um rótulo de nome DNS.
- Os grupos de contêineres expõem um só endereço IP público, com uma porta exposta.
- Um contêiner no grupo escuta na porta 80. O outro contêiner escuta na porta 1433.
- O grupo inclui dois compartilhamentos de Arquivos do Azure como montagens de volume. Cada contêiner no grupo monta um dos compartilhamentos de arquivo localmente.
Itens a serem considerados ao usar grupos de contêiner
Grupos com vários contêineres são úteis quando você deseja dividir uma única tarefa funcional em algumas imagens de contêiner. Equipes diferentes podem fornecer as imagens e as imagens podem ter requisitos de recursos separados.
Considere os cenários a seguir para trabalhar com grupos de vários contêineres. Pense em quais opções podem dar suporte a seus aplicativos internos para o varejista online.
Considere as atualizações do aplicativo Web. Suporte a atualizações para seus aplicativos Web implementando um grupo de vários contêineres. Um contêiner no grupo atende ao aplicativo Web e outro contêiner extrai o conteúdo mais recente do controle do código-fonte.
Considere a coleta de dados de log. Use um grupo de vários contêineres para capturar dados de registro em log e métricas sobre seu aplicativo. O contêiner do aplicativo gera logs e métricas. Um contêiner de registro em log coleta os dados de saída e grava os dados no armazenamento de longo prazo.
Considere o monitoramento de aplicativos. Habilite o monitoramento para seu aplicativo com um grupo de vários contêineres. Um contêiner de monitoramento periodicamente faz uma solicitação ao contêiner do aplicativo para garantir que seu aplicativo esteja em execução e respondendo corretamente. O contêiner de monitoramento gera um alerta se identificar possíveis problemas com seu aplicativo.
Considere o suporte de front-end e back-end. Crie um grupo de vários contêineres para manter o contêiner de front-end e de back-end. O contêiner de front-end pode atender a um aplicativo Web. O contêiner de back-end pode executar um serviço para recuperar dados.