Para criar clusters escalonáveis e seguros do Google Kubernetes Engine (GKE), é necessário gerenciar o endereçamento IP de maneira eficaz. Este documento oferece uma visão geral abrangente de como o GKE usa endereços IP para comunicação de clusters, os modelos de rede compatíveis e as práticas recomendadas para o gerenciamento eficaz de endereços IP.
Este documento é destinado a arquitetos de nuvem e especialistas em redes que projetam e arquitetam a rede para a organização. Para mais informações sobre papéis comuns e tarefas de exemplo, consulte Funções e tarefas de usuário comuns do GKE Enterprise. Google Cloud
Antes de continuar, confira se você conhece os seguintes conceitos:
- Rede básica: incluindo endereços IP, CIDR, firewalls e conversão de endereços de rede (NAT).
- Componentes principais do Kubernetes: como clusters, nós, pods e serviços.
Como os endereços IP conectam componentes do GKE
O GKE é baseado no modelo de rede do Kubernetes, que exige que cada componente tenha um endereço IP distinto para comunicação. As seções a seguir descrevem como o GKE atribui e usa endereços IP para componentes principais do cluster:
Nós: o GKE atribui a cada nó, que é uma instância de VM do Compute Engine, um endereço IP interno do intervalo de endereços IP principal da sub-rede associada ao pool de nós. Esse endereço IP permite a comunicação entre o nó e o plano de controle do Kubernetes. Os nós também podem ter um endereço IP externo para acesso à Internet de saída.
Pods: seguindo o modelo "IP por pod" do Kubernetes, o GKE atribui a cada pod um endereço IP exclusivo de um intervalo CIDR de pod alocado ao nó. No GKE, a rede VPC roteia nativamente os endereços IP do pod. Essa capacidade de roteamento integrada permite a comunicação direta entre pods, mesmo em nós diferentes, sem exigir a conversão de endereços de rede (NAT). Todos os contêineres em um único pod compartilham o mesmo endereço IP e podem se comunicar pelo
localhost.Serviços: o GKE atribui a cada serviço do Kubernetes um endereço IP virtual estável, (o
ClusterIP) de um intervalo de endereços IP secundário dedicado. EsseClusterIPfornece um endpoint único e confiável para um grupo de pods. Quando você envia tráfego para oClusterIP, o GKE o balanceia automaticamente para um pod íntegro dentro desse serviço.Plano de controle: em clusters particulares, o plano de controle reside em um projeto de locatário gerenciado pelo Google e usa o próprio intervalo de endereços IP interno. Esse projeto de locatário se conecta à sua rede VPC, permitindo a comunicação segura entre o plano de controle e os nós na rede VPC do cluster. Essa conexão normalmente usa o Private Service Connect.
Balanceadores de carga: para expor aplicativos à Internet ou na rede VPC, é possível configurar o GKE para usar Google Cloud balanceadores de carga. Os balanceadores de carga externos usam endereços IP públicos. Os balanceadores de carga internos usam endereços IP internos do intervalo de sub-rede principal da rede VPC.
A tabela a seguir resume como o GKE atribui endereços IP aos componentes do cluster:
| Componente | Como os endereços IP são atribuídos |
|---|---|
| Nó | O GKE atribui um endereço IP interno a cada nó. O GKE aloca esse endereço IP do intervalo de endereços IP principal da sub-rede associada ao pool de nós do nó. Essa sub-rede pode ser a sub-rede padrão do cluster ou uma sub-rede adicional. |
| Pod | O GKE atribui a cada pod um endereço IP exclusivo do intervalo CIDR de pod alocado ao nó. |
| Serviço (ClusterIP) | O GKE atribui a cada serviço um endereço IP virtual estável
(ClusterIP) de um intervalo de endereços IP secundário dedicado
na rede VPC do cluster. |
| Plano de controle | Em clusters particulares, o plano de controle do GKE tem o próprio intervalo de endereços IP interno em um projeto de locatário gerenciado pelo Google. Esse projeto de locatário se conecta à sua rede VPC, normalmente usando o Private Service Connect. |
| Balanceador de carga | Os balanceadores de carga externos usam endereços IP públicos. Os balanceadores de carga internos usam endereços IP internos do intervalo de endereços IP principal da sub-rede do cluster. |
Endereçamento IP do Kubernetes e implementação do GKE
Para usar o GKE de maneira eficaz, é necessário entender as diferenças entre o modelo de rede abstrato do Kubernetes e como o GKE implementa este modelo em Google Cloud.
Modelo de endereçamento IP do Kubernetes: o projeto de código aberto do Kubernetes especifica que cada pod recebe um endereço IP exclusivo. Todos os endereços IP do pod podem se comunicar diretamente sem a conversão de endereços de rede (NAT). Essa abordagem ajuda a garantir um espaço de rede plano em que os pods podem se alcançar usando os endereços IP atribuídos.
Implementação de endereçamento IP do GKE: o GKE implementa o modelo de endereçamento IP do Kubernetes ao se integrar à rede nativa de VPC. Google Cloud Ao criar um pod, o GKE aloca o endereço IP dele de um intervalo de endereços IP de alias da VPC. Isso torna o endereço IP de cada pod nativamente roteável em toda a rede VPC. Isso permite a comunicação direta não apenas entre pods, mas também com outros Google Cloud recursos, como instâncias do Compute Engine e bancos de dados do Cloud SQL. Da mesma forma, o GKE gerencia endereços IP de
Servicedo Kubernetes (comoClusterIPs) na rede VPC. Ao criarLoadBalancerserviços para exposição externa, o GKE provisiona Google Cloud balanceadores de carga. Esses balanceadores de carga usam endereços IP públicos ou internos da rede VPC. O GKE usa Google Cloud's a infraestrutura robusta de endereçamento IP e rede para implementar conceitos de rede baseados em IP do Kubernetes de maneira escalonável e segura
Modelo de rede do GKE: clusters nativos de VPC
O GKE implementa o modelo de rede do Kubernetes usando a rede nativa de VPC, que é um recurso principal Google Cloud .
Esse modelo usa intervalos de endereços IP de alias. Em um cluster nativo de VPC, o Kubernetes configura endereços IP de pod como intervalos de endereços IP de alias na interface de rede virtual do nó.
Essa implementação oferece várias vantagens importantes:
- Capacidade de roteamento nativa de VPC:os endereços IP do pod são diretamente roteáveis na rede VPC. Isso simplifica o design da rede e permite a comunicação direta e de baixa latência entre os pods e outros Google Cloud recursos, como instâncias do Compute Engine e instâncias do Cloud SQL.
- Conservar a cota de rotas:ao usar endereços IP de alias para pods, o GKE não cria rotas estáticas personalizadas para cada nó. Isso conserva a cota de rotas da VPC, uma melhoria significativa em relação aos clusters legados baseados em rotas, e é importante para implantações em grande escala.
- Aumentar a segurança:a capacidade de roteamento nativa de VPC permite aplicar regras de firewall nativas de VPC diretamente ao tráfego de pods, aprimorando a segurança no nível da rede.
Nativo de VPC é o modo de rede padrão e recomendado para todos os clusters do GKE.
Por que o gerenciamento eficaz de endereços IP é fundamental
Para garantir que o cluster possa ser escalonado e manter a integridade do aplicativo, é necessário planejar o espaço de endereço IP de maneira eficaz:
- Garantir a escalonabilidade: planeje os intervalos de endereços IP de nós, pods e serviços de maneira eficaz para evitar o esgotamento de endereços IP e permitir que o cluster seja escalonado sem exigir uma rearquitetura de rede disruptiva.
- Garantir a confiabilidade: evite intervalos de endereços IP sobrepostos entre o cluster do GKE e outras redes, como ambientes locais conectados pelo Cloud VPN. Intervalos sobrepostos podem levar a conflitos de roteamento, comportamento imprevisível e interrupções de serviço.
- Fortalecer a segurança: gerencie endereços IP de maneira eficaz para fortalecer a segurança da rede. Defina políticas de rede do Kubernetes para controlar o fluxo de tráfego entre pods e configurar regras de firewall para isolamento de cargas de trabalho no nível da rede.
Escolher um modelo de endereçamento IP para o cluster
O GKE oferece suporte a várias configurações de pilha de rede para atender aos requisitos de rede, incluindo IPv4, pilha dupla (IPv4 e IPv6) e opções futuras somente IPv6.
Somente IPv4 (pilha única)
Essa é a configuração padrão e mais comum, em que todos os componentes do cluster usam endereços IPv4. Mesmo em um modelo somente IPv4, o GKE oferece flexibilidade:
- Endereços IP privados RFC 1918: use intervalos de endereços IP privados RFC
1918 (por exemplo,
10.0.0.0/8) para o cluster. - Endereços IP públicos usados de maneira particular (PUPIs): se a organização não tiver espaço de endereço IP privado suficiente, é possível usar intervalos de endereços IP públicos para uso interno na rede VPC. Ao usar PUPIs, é necessário configurar o agente de mascaramento de IP . Esse agente realiza a conversão de endereços de rede de origem (SNAT) no tráfego de saída de pods. Sem SNAT, o tráfego de retorno para um pod que usa um PUPI é roteado pela Internet pública e falha. O agente de mascaramento de IP impede isso mudando o endereço IP de origem de pacotes de saída do PUPI do pod para o endereço IP interno do nó. Essa abordagem ajuda a garantir que o tráfego de retorno seja roteado corretamente de volta para o nó e encaminhado para o pod original.
Pilha dupla (IPv4 e IPv6)
Um cluster de pilha dupla usa protocolos IPv4 e IPv6. O GKE atribui um endereço IPv4 e um IPv6 a nós, pods e serviços em um cluster de pilha dupla. Esse modelo é ideal para:
- Facilitar uma transição gradual para o IPv6.
- Garantir a compatibilidade com cargas de trabalho preparadas para IPv6 e clientes e serviços somente IPv4.
É possível ativar a rede de pilha dupla ao criar um cluster ou atualizar um cluster de pilha única para pilha dupla.
A seguir
- Para saber mais sobre os benefícios do modo de rede padrão do GKE, consulte Sobre clusters nativos de VPC.
- Para começar, aprenda a criar um cluster nativo de VPC.
- Para orientações sobre como dimensionar os intervalos de endereços IP do cluster, consulte Planejamento de intervalo de endereços IP para clusters nativos de VPC.
- Para receber ajuda com problemas comuns, consulte Solução de problemas do agente de mascaramento de IP.