Modelos de rede no modo simples vs. isolado

O Kubernetes não garante que algo fora de um cluster possa comunicar com o cluster e apenas promete fornecer a seguinte funcionalidade:

  • Todos os pods num cluster podem comunicar diretamente entre si sem ter de recorrer à tradução de endereços de rede (NAT). Mesmo os pods que estão em nós diferentes podem comunicar diretamente entre si.

  • Os agentes num nó, como os daemons do sistema ou um kubelet, podem comunicar com todos os pods nesse nó.

Assim, quando uma rede aloja dois clusters, como ilustrado abaixo, uma pergunta a fazer é como é que os pods no cluster 1 comunicam com os pods no cluster 2? Da mesma forma, como é que os clientes ou os servidores fora dos clusters, marcados como "Outro cliente" e "Outro servidor" no diagrama, comunicam com um pod dentro de um cluster?

Um diagrama que mostra pontos de interrogação em caminhos para uma rede sobre a qual o Kubernetes não garante nada

Este documento explica como um modelo de rede de modo simples e um modelo de rede de modo isolado respondem a estas perguntas de forma diferente.

Modelo de rede do modo simples

Numa rede totalmente integrada ou no modo simples, os pods têm endereços IP exclusivos em todos os clusters. Por exemplo, Pod-A no cluster 1 tem um endereço IP que não vai ver em mais nenhum local no cluster 1 ou no cluster 2. Da mesma forma, Pod-G no cluster 2 tem um endereço único em ambos os clusters. Isto significa que os pods do cluster 1 podem comunicar diretamente com qualquer um dos pods no cluster 2 (partindo do princípio de que não existem firewalls nem outras políticas que bloqueiem o tráfego). Não é necessário um gateway nem uma tradução de endereços para a comunicação entre pods.

Da mesma forma, os clientes e os servidores fora de um cluster podem comunicar diretamente com um pod dentro de um cluster através do endereço IP exclusivo do pod se, por exemplo, o encaminhamento estiver configurado estaticamente em dispositivos de rede ou o Border Gateway Protocol (BGP) for usado pelos nós para anunciar que podem processar tráfego para um determinado intervalo de IP.

Assim, nas redes simples, a comunicação é fácil e direta: não existem endereços IP sobrepostos e não precisa de usar redes de sobreposição nem NAT.

Um diagrama que mostra um modelo de rede no modo simples

Modelo de rede no modo isolado

Um modelo de rede de modo simples é uma opção se tiver a vantagem de um grande espaço de endereços IP e puder atribuir um endereço IP exclusivo a cada pod. No entanto, se um grande espaço de endereços IP não for uma opção para si, um modelo de rede no modo isolado é uma boa escolha.

Numa rede de modo isolado, os nós têm endereços IP únicos, mas, para serem económicos com endereços IP escassos, os pods não têm endereços únicos em todos os clusters. Isto não causa problemas porque os pods num cluster nunca comunicam diretamente com os pods noutro cluster. Em alternativa, conforme mostra o diagrama seguinte, existem gateways que fazem a mediação entre um pod num cluster e um pod noutro cluster.

Um diagrama que mostra um modelo de rede no modo isolado

Da mesma forma, o tráfego (de entrada) de um cliente que entra num cluster e o tráfego (de saída) que sai de um cluster são processados por gateways semelhantes. As gateways podem ser implementadas de várias formas. Por exemplo, o NAT, os endereços IP virtuais (VIPs) e os proxies são alguns exemplos de gateways. Realizam traduções de endereços IP que têm o efeito de manter os IPs dos pods privados.

No modelo de rede de modo isolado, é possível usar os mesmos endereços IP de pods em cada cluster. Isto é, os endereços IP dos pods não têm de ser exclusivos em todos os clusters. Como sugere o diagrama seguinte, pode usar os mesmos endereços IP de pods em cada cluster porque um pod num cluster nunca comunica diretamente com um pod noutro cluster.

Um diagrama que mostra um modelo de rede no modo isolado

Uma grande vantagem do modelo de rede no modo isolado é que os endereços IP dos pods podem ser reutilizados desta forma.

Vantagens e desvantagens dos dois modelos

Seguem-se algumas das vantagens e desvantagens dos dois modelos:

  • Uma rede simples é mais rápida do que uma rede isolada porque os gateways no modo isolado fazem traduções de endereços, e estas traduções incorrem num custo de desempenho.

  • A depuração de problemas de cluster é mais fácil em redes simples porque tudo na rede tem um endereço IP exclusivo e, por isso, é mais fácil identificar onde ocorre um problema. Por exemplo, os IPs dos pods não estão ocultos atrás do endereço IP de um nó e, por isso, é mais fácil determinar exatamente que pod está a causar problemas. Da mesma forma, os IPs dos clientes não são ocultados no modo simples da mesma forma que no modo de ilha, o que também ajuda na depuração.

  • Pode não conseguir usar o modelo de rede simples se tiver poucos endereços IP ou se o seu espaço de IP estiver fragmentado (ou seja, se não tiver grandes blocos de endereços IP). Nesse caso, uma rede isolada é uma melhor opção.

É importante ter em atenção que os modelos de rede simples e isolada são apenas dois dos modelos de rede possíveis, e existem muitas variações mesmo nestes modelos.