O que são redes Kubernetes?

 

O Kubernetes (às vezes chamado de K8s) é uma plataforma de código aberto usada para gerenciar e automatizar a implantação, a programação, o monitoramento, a manutenção e a operação de contêineres de aplicativos em um cluster de máquinas.

Desenvolvida pelo Google, a rede com Kubernetes permite aos administradores migrar cargas de trabalho entre infraestruturas em nuvem privada, pública e híbrida. Os desenvolvedores usam o Kubernetes para criar pacotes de aplicativos de software com a infraestrutura necessária e implantar novas versões rapidamente.


As redes Kubernetes permitem que os componentes do Kubernetes se comuniquem entre eles e com outros aplicativos. A plataforma do Kubernetes é diferente das outras plataformas de rede porque é baseada em uma estrutura de rede uniforme que elimina a necessidade de associar as portas de host às portas de contêiner. Com a plataforma do Kubernetes, é possível executar sistemas distribuídos, compartilhando máquinas entre aplicativos sem alocação dinâmica de portas.

Balanceamento de carga moderno com serviços de aplicativos definidos por software

Saiba mais 

O que são redes de pods Kubernetes?

Uma rede de pods Kubernetes conecta vários componentes inter-relacionados:

  • Pods: os pods Kubernetes são inspirados na natureza, como “pea pods” (“vagens de ervilha”) e “whale pods” (“grupos de baleias”). São grupos de contêineres que compartilham recursos de rede e armazenamento do mesmo nó. Eles são criados com um servidor de API e posicionados por um controlador. Cada pod recebe um endereço IP, e todos os contêineres no pod compartilham o mesmo armazenamento, endereço IP e espaço de porta (namespace de rede). 
  • Contêineres: um contêiner do Kubernetes é como uma máquina virtual que compartilha o sistema operacional (SO) dela com vários aplicativos. Ele tem seu próprio sistema de arquivos, CPU, memória e espaço de processo. Os contêineres são sempre criados em pods, sendo que é possível criar vários contêineres em um único pod. Os contêineres em um pod são movidos, programados e encerrados juntos. O pod podem ser movidos entre as nuvens. Os contêineres podem se conectar por meio da rede deles com outros contêineres, com um host e com redes externas.
  • Nós: os pods são sempre executados em um nó de trabalho. Os nós são máquinas que executam aplicativos em contêineres. O Kubernetes agrupa esses nós em clusters.
  • Nó mestre: cada cluster de nós tem pelo menos um nó principal que gerencia os nós de trabalho. O nó principal pode se comunicar com cada um dos nós em um cluster ou diretamente com cada pod individual.

Como funcionam as redes no Kubernetes?

Os vários componentes da plataforma do Kubernetes (pods, contêineres, nós e aplicativos) usam diversos métodos de rede para se comunicar. Existe a comunicação entre contêineres, entre pods, entre pod e serviço e entre rede externa e serviço.

A comunicação entre pods é a base do Kubernetes. Os pods se comunicam entre eles de acordo com políticas de rede definidas pelo plug-in de rede, comunicando-se com outros pods sem criar explicitamente links entre eles nem associar portas de contêiner a portas de host. Como os pods compartilham o mesmo namespace de rede e têm endereços IP próprios, eles conseguem detectar e se comunicar com todos os outros pods em todos os nós usando o host local sem precisar usar o Network Address Translation (NAT). 

Um dos desafios de uma rede Kubernetes é definir como será a interação entre o tráfego da rede interna (leste-oeste) e externa (norte-sul), porque a rede interna é isolada da rede externa. No entanto, o tráfego que flui entre os nós também pode fluir entre os nós e uma máquina virtual ou física externa. Há algumas maneiras de fazer com que o tráfego externo chegue a um cluster do Kubernetes:

  • LoadBalancer: é o método padrão para conectar um serviço externamente à Internet. Neste cenário, um balanceador de carga de rede encaminha todo o tráfego externo para um serviço. Cada serviço tem seu próprio endereço IP.
  • ClusterIP: é o serviço padrão do Kubernetes para comunicações internas. Entretanto, o tráfego externo pode acessar o serviço padrão ClusterIP do Kubernetes por um proxy. Isso pode ser útil para depurar serviços ou exibir painéis internos. 
  • NodePort: abre as portas nos nós ou nas máquinas virtuais, e o tráfego é encaminhado das portas para o serviço. É mais usado para serviços que nem sempre estão disponíveis, como aplicativos de demonstração.
  • Ingress: funciona como um roteador ou controlador para rotear o tráfego para os serviços por meio de um balanceador de carga. É útil quando se deseja usar o mesmo endereço IP para expor vários serviços.

Outro aspecto importante da rede Kubernetes é a interface de rede de contêineres (CNI, pela sigla em inglês). A CNI conecta os pods dos nós, agindo como uma interface entre um namespace e um plug-in de rede ou entre um provedor de rede e uma rede Kubernetes. Há diversos provedores e plug-ins de CNI disponíveis com conjuntos de recursos e funcionalidades diferentes. Os plug-ins de CNI podem configurar dinamicamente uma rede e os recursos conforme os pods são aprovisionados e destruídos. Eles aprovisionam e gerenciam endereços IP à medida que os contêineres são criados e excluídos. O Kubernetes é o provedor de rede padrão para Kubernetes, mas os plug-ins de CNI, como Flannel, Calico, Canal e Weave Net, oferecem outros recursos.

 

Como implementar uma rede Kubernetes

Os administradores de rede podem implementar o modelo de rede Kubernetes de diversas maneiras. A Gartner reconheceu os seguintes exemplos de rede Kubernetes como “visionários” no quadrante mágico do relatório de rede de data center de 2019:

  • Big Switch Networks’ Big Cloud Fabric: arquitetura de rede nativa de nuvem que executa o Kubernetes em ambientes de nuvem privada.
  • Cumulus NetQ:  sistema de validação de malha com base em telemetria que proporciona visibilidade das implantações de contêineres.
  • Dell EMC:  plataforma de nuvem com capacidade para ambientes de aplicativos tanto tradicionais quanto nativos de nuvem, com suporte integrado para Kubernetes e contêineres.
  • VMware NSX-T: plataforma de virtualização de redes e segurança que virtualiza as redes em ambientes multi-cloud ou com vários hypervisors, incluindo a rede nativa de contêiner.

Rede com Kubernetes

Video Play Icon

Produtos, soluções e recursos relacionados a redes Kubernetes da VMware

VMware NSX: Plataforma líder em virtualização de segurança e rede empresarial

O VMware NSX Data Center oferece uma plataforma completa de virtualização de rede e segurança de camada 2 a 7, permitindo gerenciar toda a rede como uma entrada por um painel único de controle.

VMware Enterprise PKS

Comece a usar o VMware Enterprise PKS. Implante, execute e gerencie o Kubernetes para produção com eficiência e produtividade

Rede de contêineres com VMware NSX

Forneça rede e segurança integradas em toda a pilha para microsserviços e aplicativos em contêineres.

VMware Tanzu

Crie aplicativos rapidamente, execute o Kubernetes de código aberto com consistência e gerencie toda a sua superfície com confiança.