O Kubernetes não garante que nada fora do cluster possa se comunicar com o cluster. Além disso, ele garante as seguintes funcionalidades:
Todos os pods em um cluster podem se comunicar diretamente sem precisar recorrer à conversão de endereços de rede (NAT). Até mesmo os pods que estão em nós diferentes podem se comunicar diretamente entre si.
Os agentes em um nó, como daemons do sistema ou um kubelet, podem se comunicar com todos os pods nesse nó.
Assim, quando uma rede está hospedando dois clusters, como mostrado abaixo, uma pergunta é sobre como os pods no cluster 1 se comunicam com os do cluster 2. Da mesma forma, como clientes ou servidores fora dos clusters marcados como "Outro cliente" e "Outro servidor" no diagrama se comunicam com um pod dentro de um cluster?
Este documento explica como um modelo de rede em modo plano e um modelo de rede em modo Ilha respondem a essas perguntas de maneira diferente.
Modelo de rede no modo plano
Em uma rede totalmente integrada ou de 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 você
não verá em nenhum outro lugar no cluster 1 ou 2. Da mesma forma, Pod-G
no cluster
2 tem um endereço exclusivo em ambos os clusters. Isso significa que, supondo que não haja
firewalls ou outras políticas que bloqueiem o tráfego, os pods do cluster 1 podem
se comunicar diretamente com qualquer um dos pods no cluster 2. Não é necessário um
gateway ou uma tradução.
Da mesma forma, clientes e servidores fora de um cluster podem se comunicar diretamente com um pod dentro do cluster por meio do endereço IP exclusivo do pod se, por exemplo, o roteamento estiver configurado estaticamente em dispositivos de rede ou no Border Gateway Protocol (BGP) ) for usado pelos nós para anunciar que podem processar o tráfego de um determinado intervalo de IP.
Assim, em redes planas, a comunicação é fácil e direta: não há endereços IP sobrepostos e você não precisa usar redes de sobreposição ou NAT.
Modelo de rede no modo ilha
Um modelo de rede em modo simples é uma opção se você tem o luxo de um grande espaço de endereços IP, e é possível atribuir um endereço IP exclusivo a cada pod. No entanto, se um espaço de endereço IP grande não for uma opção, um modelo de rede no modo de ilha é uma boa escolha.
Em uma rede no modo de ilha, os nós têm endereços IP exclusivos, mas, para serem econômicos com endereços IP escassos, os pods não têm endereços exclusivos nos clusters. Isso não causa problemas porque os pods em um cluster nunca se comunicam diretamente com pods em outro cluster. Em vez disso, conforme mostrado no diagrama a seguir, há gateways que mediam entre um pod em um cluster e um pod em outro cluster.
Da mesma forma, o tráfego (de entrada) de um cliente que entra em um cluster e o tráfego (de saída) que sai de um cluster é processado por gateways semelhantes. Os gateways podem ser implementados de várias maneiras. Por exemplo, NAT, os endereços IP virtuais (VIPs, na sigla em inglês) e os proxies são alguns exemplos de gateways. Eles realizam conversões de endereços IP que têm o efeito de manter os IPs de pod particulares.
No modelo de rede no modo ilha, os mesmos endereços IP do pod podem ser usados em cada cluster. Eles não precisam ser exclusivos entre os clusters. Como o diagrama a seguir sugere, é possível usar os mesmos endereços IP de pod em cada cluster porque um pod em um cluster nunca se comunica diretamente com um pod em outro cluster.
Uma grande vantagem do modelo de rede no modo ilha é que os endereços IP do pod podem ser reutilizados dessa maneira.
Vantagens e desvantagens dos dois modelos
Algumas das vantagens e desvantagens dos dois modelos são listadas aqui:
Uma rede plana é mais rápida que uma rede de ilha porque os gateways no modo de ilha realizam conversões de endereço, e essas traduções geram um custo de desempenho.
A depuração de problemas do cluster é mais fácil nas redes planas, porque tudo na rede tem um endereço IP exclusivo. Assim, é mais fácil identificar onde ocorre um problema. Por exemplo, os IPs de pod não são mascarados por trás do endereço IP de um nó. Portanto, é mais fácil determinar exatamente qual pod está causando problemas. Da mesma forma, os IPs do cliente não ficam ocultos no modo plano do modo de ilha, o que também ajuda na depuração.
Talvez não seja possível usar o modelo de rede simples se você tiver endereços IP escassos ou se o espaço de IP estiver fragmentado. Ou seja, se você não tiver grandes blocos de endereços IP. Nesse caso, uma rede de ilha é a melhor opção.
É importante observar que os modelos de rede simples e de ilha são apenas dois dos modelos de rede possíveis, e há muitas variações mesmo nesses modelos.