A rede de contêineres é um mecanismo de sandbox de aplicativos emergente usado em desktops domésticos e soluções de rede empresarial com capacidade para a Web, semelhante ao conceito de uma máquina virtual. Um ambiente Linux completo com seus próprios usuários, sistema de arquivos, processos e pilha de rede é isolado do host e de todos os outros contêineres. Todos os aplicativos dentro do contêiner têm permissão para acessar ou modificar arquivos ou recursos disponíveis apenas dentro do contêiner.
É possível executar vários contêineres ao mesmo tempo, cada um com suas próprias instalações e dependências. Isso é particularmente útil quando versões mais recentes de um aplicativo podem exigir o upgrade de uma dependência que pode causar conflitos com outras dependências de aplicativos em execução no servidor. Ao contrário das máquinas virtuais, os contêineres compartilham recursos de host em vez de simular totalmente todo o hardware no computador, tornando os contêineres menores e mais rápidos do que as máquinas virtuais e reduzindo as despesas gerais. Os contêineres foram projetados para substituir as VMs como uma plataforma de implantação para arquiteturas de microsserviço, principalmente no contexto de aplicativos em escala da Web.
Os contêineres também têm a característica de portabilidade, por exemplo, o Docker, um mecanismo de contêiner, permite que os desenvolvedores empacotem um contêiner e todas as suas dependências juntas. Esse pacote em contêiner pode ser disponibilizado para download. Após o download, o contêiner pode ser executado imediatamente em um host.
A rede de contêineres é uma forma de virtualização semelhante às máquinas virtuais (VM) em conceito, mas com diferenças distintas. Basicamente, o método de contêiner é uma forma de virtualização do sistema operacional em comparação com as VMs, que são uma forma de virtualização de hardware.
Cada máquina virtual em execução em um hypervisor tem seu próprio sistema operacional, aplicativos e bibliotecas e é capaz de encapsular dados persistentes, instalar um novo sistema operacional, usar um sistema de arquivos diferente do host ou usar uma versão de kernel diferente.
Por outro lado, os contêineres são uma "instância em execução" de uma virtualização de sistema operacional de imagem, que aumenta a velocidade para executar algumas tarefas e, em seguida, é excluída e esquecida. Devido à natureza efêmera dos contêineres, os usuários do sistema executam muito mais instâncias de contêineres do que as máquinas virtuais que exigem um espaço de endereço maior.
Para criar isolamento, um contêiner conta com dois recursos do kernel do Linux: namespace e cgroups. Para dar ao contêiner sua própria visualização do sistema, isolando-o de outros recursos, um namespace é criado para cada um dos recursos e não compartilhado do sistema restante. Os grupos de controle (Cgroups) são usados para monitorar e limitar os recursos do sistema, como CPU, memória, E/S de disco, rede etc.
Os contêineres estão sendo adotados rapidamente, substituindo as VMs como plataforma para microsserviços.
Os contêineres têm vários benefícios importantes:
Os contêineres são implantados como parte da arquitetura de microsserviços em ambientes corporativos para ajudar a encapsular tarefas individuais comuns para grandes aplicativos da Web. Cada tarefa pode ter seu próprio contêiner. Os contêineres externos, como APIs e GUIs, são abertos para a Internet pública e os outros residem na rede privada.
O modelo de microsserviços traz vantagens:
Existem cinco tipos de rede de contêineres usados atualmente; suas características estão centradas nos modelos IP por contêiner versus IP por pod e no requisito de network address translation (NAT) versus a não necessidade de conversão.
Imagens e binários assinados com total suporte corporativo ao projeto Antrea
Conecte e proteja seus aplicativos e microsserviços em contêineres.
Tenha a experiência da nuvem pública em seu data center com o Virtual Cloud Network