Visão geral da rede Kubernetes

Concluído

Nós

É comum ver o Kubernetes referido como um 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 funcionais 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 plano de controle do Kubernetes, que fornece os principais serviços do Kubernetes e a orquestração de cargas de trabalho de aplicativos, para que 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. Os pods são a menor unidade implantável em um cluster Kubernetes. Eles são distribuídos pelos nós de uma forma que permite o melhor uso dos recursos de processador e memória disponíveis nos nós. Os pods normalmente 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 um componente de envio que lida com 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 nós para fornecer alta disponibilidade. Com várias réplicas dos pods, nosso aplicativo pode continuar a funcionar 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 falhe, e o suporte interno para atualizações contínuas automatiza a implantação de novas versões de um aplicativo sem qualquer tempo de inatividade.

Os pods recebem um novo endereço IP durante sua implantação inicial. Este 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 de cluster é alta e ocorre escala, 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 do pod.

Se os endereços IP do pod sofrem alterações frequentes, como o Kubernetes sabe para onde enviar o tráfego de rede para chegar ao nosso aplicativo? A resposta são os serviços.

Serviços

Um serviço 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 distribui-o de forma round-robin para um conjunto de pods de backend. O serviço rastreia as alterações nos endereços IP dos pods para garantir que o tráfego de rede seja enviado para os pods corretos.

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