Visão geral da rede do Kubernetes

Concluído

Nós

É comum ver o Kubernetes ser chamado de cluster. Em um alto nível, os clusters são um grupo de computadores que trabalham juntos e compartilham recursos para ajudar a melhorar o desempenho e a disponibilidade. Se algum computador no cluster falhar, os serviços em execução no cluster poderão continuar em execução nos computadores em funcionamento restantes.

No Microsoft Azure, esses computadores são conhecidos como máquinas virtuais (VMs). No Kubernetes, essas VMs são conhecidas como nós.

Os nós precisam de conectividade de rede para que possam se comunicar uns com os outros e rotear efetivamente o tráfego de rede. Os nós também precisam se comunicar com o painel de controle do Kubernetes, que fornece os principais serviços do Kubernetes e a orquestração de cargas de trabalho do aplicativo, para que eles possam executar os recursos de carga de trabalho do aplicativo.

Diagram that shows the Kubernetes cluster nodes and control plane.

Pods

No Kubernetes, os recursos de carga de trabalho do aplicativo incluem pods, implantações e conjuntos. Pods são a menor unidade implantável em um cluster do Kubernetes. Eles são distribuídos entre seus nós de uma maneira que permite o melhor uso dos recursos de memória e processador disponíveis nos nós. Normalmente, os pods representam uma única instância ou subcomponente do seu aplicativo. Um pod pode executar um componente de carrinho de compras que gerencia os itens no carrinho de um cliente ou em um componente de envio que manipula o processamento de pedidos concluídos.

Você pode executar várias cópias ou réplicas do mesmo pod. As réplicas distribuem vários pods entre os nós a fim de permitir alta disponibilidade. Com várias réplicas dos pods, nosso aplicativo poderá continuar funcionando se um componente em execução em um pod falhar.

Diagram that shows multiple pod replicas running across several Kubernetes cluster nodes.

Com os recursos de dimensionamento no Kubernetes, você pode adicionar ou remover pods em resposta ao nível de demanda no cluster. As habilidades de autorrecuperação no Kubernetes podem substituir qualquer pod que falha, e o suporte interno para atualizações sem interrupção automatiza a implantação de novas versões de um aplicativo sem nenhum tempo de inatividade.

Os pods recebem um novo endereço IP durante a implantação inicial. Esse endereço IP é usado para toda a comunicação de rede com o pod. Há muitos cenários em que um pod recebe um novo endereço IP. Quando a demanda do cluster é alta e ocorre o dimensionamento, novos pods são implantados. Quando você atualiza um aplicativo, novos pods são implantados para substituir os pods antigos. Se um pod falhar, um novo pod o substituirá automaticamente. Todos esses cenários resultam em novos endereços IP de pod.

Se os endereços IP de pod tiverem alterações frequentes, como o Kubernetes saberá para onde enviar tráfego de rede para acessar nosso aplicativo? A resposta são os serviços.

Serviços

Um serviço do Kubernetes fica na frente de um grupo de pods e fornece um endereço IP estático. Quando o tráfego chega a um serviço, o serviço o distribui de maneira round-robin para um conjunto de pods de back-end. O serviço rastreia as alterações nos endereços IP dos pods para garantir que o tráfego de rede seja enviado aos pods corretos.

Diagram that shows multiple pod replicas being served network traffic via a Kubernetes service.