O que é a rede de contêineres?

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.

VMware Container Networking with Antrea - Datasheet

Anúncio do VMware Container Networking with Antrea for Kubernetes

Como funciona a rede de contêineres?

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.

Benefícios do IDS/IPS

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:

  • Executam aplicativos em contêineres junto com as cargas de trabalho existentes: as máquinas podem executar aplicativos em contêineres juntamente com VMs tradicionais na mesma infraestrutura, garantindo flexibilidade e velocidade.
  • Combinam portabilidade com segurança, visibilidade e gerenciamento: devido ao design inerente dos contêineres, ele permite maior segurança por meio de sandboxing, transparência de recursos com o host, gerenciamento de tarefas e portabilidade do ambiente de execução.
  • Aproveitam sua infraestrutura existente e são dimensionados com facilidade: use o SDDC existente para evitar a rearquitetura cara e demorada de sua infraestrutura que resulta em silos. Os silos ocorrem quando departamentos distintos mantêm sua própria infraestrutura de TI na mesma organização. Esse "efeito de silos" cria problemas ao implantar políticas de TI e upgrades em toda a organização, devido às diferenças nas configurações técnicas de cada departamento. A reintegração de silos é um processo caro e demorado que pode ser evitado por meio da rede de contêineres.
  • Fornecem aos desenvolvedores uma interface compatível com Docker: Os desenvolvedores que já estão familiarizados com Docker podem desenvolver aplicativos em contêineres por meio de uma interface compatível com Docker, e aprovisioná-los por meio da UI ou do portal de gerenciamento de autoatendimento.

Uso de rede de contêineres em implantações de aplicativos em escala da Web

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:

  • Facilidade de implantação: as configurações de host podem ser incorporadas em contêineres, tornando-os prontos para uso após a implantação.
  • Descartáveis: Os contêineres são projetados para inicialização e descarte rápidos. Se o host falhar, colocar os aplicativos on-line novamente será tão simples quanto colocar um servidor sobressalente.
  • Tolerante a Falhas: Os contêineres criam redundância fácil para bancos de dados e servidores da Web. Copiar o mesmo contêiner em vários nós fornece alta disponibilidade e tolerância a falhas.

Tipos de rede de contêineres

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.

  • Nenhuma: o contêiner recebe uma pilha de rede; no entanto, ele não tem uma conexão externa. Esse modo é útil para testar contêineres, preparar um contêiner para uma conexão de rede posterior e atribuir a contêineres que não exigem comunicações externas.
  • Ponte: contêineres que são interligados em uma rede de host interna e têm permissão para se comunicar com outros contêineres no mesmo host. Os contêineres não podem ser acessados de fora do host. A rede de ponte é o padrão para contêineres do Docker.
  • Host: essa configuração permite que um contêiner criado compartilhe o namespace de rede do host, concedendo ao contêiner acesso a todas as interfaces de rede do host. Sendo a menos complexa das configurações de rede externa, esse tipo é propenso a conflitos de porta devido ao uso compartilhado das interfaces de rede.
  • Underlay: os underlays abrem as interfaces do host diretamente para os contêineres em execução no host e eliminam a necessidade de mapeamento de portas, tornando-os mais eficientes do que as pontes.
  • Sobreposição: as sobreposições usam túneis de rede para se comunicarem entre hosts, permitindo que os contêineres ajam como se estivessem na mesma máquina quando hospedados em hosts diferentes.

Soluções e produtos relacionados

Antrea

Imagens e binários assinados com total suporte corporativo ao projeto Antrea

Conecte contêineres e Kubernetes

Conecte e proteja seus aplicativos e microsserviços em contêineres.

Virtual Cloud Network

Tenha a experiência da nuvem pública em seu data center com o Virtual Cloud Network