Clusters nativos de VPC (original) (raw)

Nesta página, você encontra uma visão geral dos clusters nativos de VPC no Google Kubernetes Engine (GKE).

Esta página é destinada a arquitetos de nuvem e especialistas em redes que projetam e arquitetam a rede para a organização. Para saber mais sobre papéis comuns e exemplos de tarefas que mencionamos no conteúdo do Google Cloud , consulteTarefas e funções de usuário comuns do GKE.

Visão geral

No GKE, os clusters podem ser diferenciados de acordo com a maneira como direcionam o tráfego de um pod para outro.

Um cluster que usa intervalos de endereços IP de alias é chamado de_cluster nativo de VPC_. Um cluster que usa rotas estáticas personalizadas em uma rede VPC é chamado de cluster baseado em rotas.

Prática recomendada:

Planeje e projete a configuração do cluster com arquitetos de rede, administradores de rede ou qualquer outra equipe de engenheiros de rede da organização responsável por definir, implementar e manter a arquitetura de rede.

Benefícios dos clusters nativos de VPC

Os clusters nativos de VPC têm vários benefícios:

Modo de rede padrão do cluster

O modo de rede padrão para todos os novos clusters em qualquer versão disponível e criados por qualquer interface, incluindo a Google Cloud CLI,o console Google Cloud ou a API GKE, é o nativo de VPC. Para mais informações sobre as versões disponíveis, consulte Versões atuais.

Se você não quiser usar o modo de rede nativo de VPC recomendado, consulte Como criar um cluster baseado em rotas.

Intervalos de endereços IP para clusters nativos de VPC

Ao criar um cluster nativo de VPC, você especifica uma sub-rede em uma rede VPC. O cluster usa os seguintes intervalos de endereços IP de sub-rede:

Alocação de endereços IPv4

Os clusters nativos de VPC alocam endereços IPv4 para nós, pods e serviços da seguinte maneira.

Alocação de endereços IPv6 (rede de pilha dupla)

A tabela a seguir mostra um resumo dos intervalos de endereços IP para nós, pods e serviços:

Intervalo Explicação Exemplo
Nós Endereços IP de nós são atribuídos a partir do intervalo de endereços de IP primário da sub-rede associada ao seu cluster. Os endereços IP dos nós e o tamanho do intervalo de endereços IP secundários da sub-rede para pods limitam o número de nós que um cluster pode suportar. Consulte intervalos de limite de nós para ver mais informações. Se você planeja criar um cluster de 900 nós, o intervalo de endereços de IP primário da sub-rede do cluster precisa ser de pelo menos /22 (2(32-22) = 210 = 1.024 endereços). Desses 1.024 endereços, 1.020 são utilizáveis porquequatro endereços IP estão reservados em todos os intervalos de endereços de IP primários. Consulte Intervalo de endereços de IP primários de sub-rede eIntervalo secundário de endereços de IP de sub-redes para pods para ver mais informações.
Pods Os endereços de IP do pod são obtidos do intervalo de endereços de IP secundários da sub-rede do cluster para pods. A menos que você defina um número máximo de pods por nó, o GKE aloca um /24 intervalo de IP de alias com (256 endereços) para cada nó dos pods executados nele. Em cada nó, esses 256 endereços de IP de alias são usados para dar suporte a até 110 pods. Para um cluster de 900 nós dando suporte a até 110 pods por nó, você precisa de 900 × 256 = 230.400 endereços de IP para pods. (Cada nó recebe um intervalo de IP do alias com tamanho da máscara de rede de /24.) Esse cluster requer uma sub-rede com intervalo de IP secundário para pods com uma máscara de sub-rede não maior que /14. Esse intervalo de IP secundário fornece 2(32-14) = 218 = 262.144 endereços IP para pods. Consulte Intervalo de endereços de IP secundários da sub-rede para pods para ver mais informações.
Serviços Os endereços de serviço (IP de cluster) são extraídos do intervalo de endereços IP secundário da sub-rede do cluster para serviços. Certifique-se de que esse intervalo seja grande o suficiente para fornecer endereços para todos os Serviços do Kubernetes hospedados no seu cluster. Em clusters do GKE Autopilot que executam a versão 1.27 e mais recentes, e em clusters do GKE Standard que executam a versão 1.29 e mais recentes, o GKE atribui endereços IP para serviços do GKE de um intervalo gerenciado pelo GKE: 34.118.224.0/20 por padrão. Isso elimina a necessidade de especificar seu próprio intervalo de endereços IP para serviços. Para detalhes, consulte Intervalo de endereços IP secundário da sub-rede para Serviços. Para um cluster que executa até 3.000 Serviços, você precisa de 3.000 endereços de IP de cluster. Você precisa de um intervalo secundário de tamanho /20 ou maior. O intervalo A /20 de endereços de IP resulta em 2 (32-20) = 2 12 = 4.096 endereços de IP. Consulte Intervalo secundário de endereços de IP da sub-rede para Serviços para ver mais informações.

Endereços IPv4 internos

Os endereços IPv4 que você usa para as sub-redes do cluster nativo de VPC precisam vir de um intervalo de sub-rede válido. Os intervalos válidos incluem endereços IPv4 particulares, como RFC 1918, e endereços IP públicos utilizados de forma particular. Consulte Intervalos válidos eIntervalos restritos na documentação da VPC para mais informações sobre intervalos IPv4 de sub-rede válidos.

Para informações importantes sobre o uso de endereços particulares que não são RFC 1918, consulte Como usar intervalos de endereços IPv4 particulares não RFC 1918.

Para informações importantes sobre o uso de intervalos de endereços IPv4 públicos usados de modo particular, consulte Ativar intervalos de endereços IP públicos usados de modo particular.

Métodos de atribuição de intervalo IPv4 secundário da sub-rede

É possível atribuir intervalos de endereços IP de pod e intervalos de endereços de serviço (ClusterIP) a um cluster nativo de VPC. Esses intervalos de endereços IP podem ser gerenciados pelo GKE ou gerenciados pelo usuário.

Você precisa entender os seguintes termos-chave para entender os métodos de atribuição de intervalo secundário.

Atribuição: a atribuição de intervalos de endereços IP refere-se ao processo de alocação de um intervalo de sub-rede específico para um cluster nativo de VPC. Isso estabelece um pool de endereços IP que os componentes podem usar no cluster, como pods e serviços.

Gerenciamento: gerenciar o intervalo de endereços IP refere-se às operações CRUD contínuas (criação, atualização, exclusão, leitura) no cluster, pool de nós ou pod, relacionadas aos intervalos de sub-rede e à alocação de recursos no cluster nativo de VPC.

Intervalos secundários gerenciados pelo GKE (padrão)

Para clusters do GKE Autopilot que executam a versão 1.27 e mais recentes e clusters do GKE Standard que executam as versões 1.29 e mais recentes, o GKE atribui endereços IP para serviços de um intervalo gerenciado pelo GKE por padrão: 34.118.224.0/20. Isso elimina a necessidade de especificar seu próprio intervalo de endereços IP para serviços. As seguintes considerações se aplicam:

Gerenciado pelo usuário

Para controle total sobre a alocação de endereços IP, gerencie manualmente as sub-redes do cluster nativo de VPC.

É possível criar os intervalos de endereços IP secundários da sub-rede e, em seguida, criar um cluster que use esses intervalos. Durante a criação do cluster, especifique o nome do intervalo de sub-rede para pods e serviços. Se você criar manualmente os intervalos secundários, é necessário gerenciá-los manualmente.

O menor intervalo de endereços IP que pode ser criado sem usar o CIDR descontínuo de vários podsé /28, mas esse intervalo só permite criar um nó com no máximo 8 pods. Use um intervalo grande o suficiente para o número máximo de nós necessários.

O intervalo mínimo utilizável depende do número máximo de pods por nó.

Consulte a tabela em Intervalos CIDR de pods em clusters padrão para ver o intervalo utilizável mínimo de CIDR para diferentes valores de pods máximos por nó.

Se você esgotar seu intervalo de endereços IP para pods, será necessário realizar uma das ações a seguir:

Diferenças de clusters baseados em rotas

O esquema de alocação para endereços de Pod e Serviço (IP do cluster) é diferente do esquema usado por um cluster baseado em rotas. Em vez de especificar um único CIDR para pods e serviços juntos, escolha ou crie dois intervalos de endereços IP secundários na sub-rede do cluster: um para pods e outro para serviços.

Considerações sobre VPC compartilhada

Ao criar um cluster nativo de VPC em um ambiente de VPC compartilhada, um proprietário, editor ou principal do Identity and Access Management (IAM) com a função de administrador de rede no projeto host da VPC compartilhada precisa criar manualmente a sub-rede e os intervalos de endereços IP secundários do cluster. Um administrador de projeto de serviços que cria um cluster precisa ter permissões de nível de sub-rede para a sub-rede no projeto host da rede VPC compartilhada.

Em um ambiente de VPC compartilhada, os intervalos de endereços IP secundários não podem ser gerenciados pelo GKE. Um administrador de rede no projeto de host da VPC compartilhada precisa criar a sub-rede e intervalos de endereços IP secundários antes de criar o cluster. Para ver um exemplo de como configurar um cluster nativo de VPC em uma rede VPC compartilhada, consulte Como configurar clusters com VPC compartilhada.

Planejamento de intervalo de endereços IP

Use as informações nas seções a seguir para calcular os tamanhos dos intervalos de endereços IP primário e secundário da sub-rede usada pelo cluster.

Calculadora de endereços IP do GKE

Use esta calculadora para planejar a alocação de endereços IP para seus clusters nativos de VPC. É possível inserir o número de nós e pods para determinar os tamanhos de prefixo de sub-rede adequados ou inserir os tamanhos de sub-rede para ver o número máximo de nós e pods compatíveis. Essa calculadora aloca intervalos de endereços IP suficientes para evitar o esgotamento à medida que o cluster é dimensionado.

Intervalo de endereços IPv4 principal da sub-rede

Considere o seguinte ao planejar o intervalo de endereços IPv4 principal de uma sub-rede de cluster:

A tabela a seguir mostra o número máximo de nós que podem ser criados, considerando o tamanho do intervalo de endereços IPv4 primário da sub-rede e a configuração do cluster:

Intervalo do endereço IP primário da sub-rede Cenário 1 Cenário 2
/29 Tamanho mínimo do intervalo de endereços IP principal de uma sub-rede 4 nós 3 nós
/28 12 nós 11 nós
/27 28 nós 27 nós
/26 60 nós 59 nós
/25 124 nós 123 nós
/24 252 nós 251 nós
/23 508 nós 507 nós
/22 1.020 nós 1.019 nós
/21 2.044 nós 2.043 nós
/20 Tamanho padrão do intervalo de endereços IP primários de uma sub-rede em redes de modo automático 4.092 nós 4.091 nós
/19 8.188 nós 8.187 nós
/9 Tamanho máximo do intervalo de endereços IP principal de uma sub-rede 8.388.604 nós 8.388.603 nós

Expanda o intervalo de endereços IP primário

Se você ficar sem endereços IP no intervalo de endereços IP principal, será possível expandir o intervalo de endereços IP principal a qualquer momento, mesmo quando os recursos do Google Cloud , como balanceadores de carga e grupos de endpoints de rede, usarem a sub-rede.

Antes de expandir o intervalo de endereços IP primário, considere o seguinte:

Fórmulas úteis

É possível usar as seguintes fórmulas para:

Em clusters do Private Service Connect que não usam a flagprivate-endpoint-subnetwork, é possível usar as fórmulas anteriores, mas reduzir o valor de N em 1.

Considerações sobre o dimensionamento do cluster para o intervalo de endereços IP secundário para pods

Para calcular o número máximo de pods que seu cluster pode oferecer suporte, considere o tamanho da sub-rede de pods e o número máximo de pods por nó. O número máximo de pods depende da máscara de sub-rede e do número máximo de pods por nó. Além disso, lembre-se de que alguns endereços IP são reservados no intervalo principal.

Variáveis principais

Etapas para calcular o número máximo de pods

  1. Determine o número máximo de pods por nó (Q):
    • Para clusters do Autopilot, o valor de Q é fixo em 32.
    • Para clusters padrão, é possível configurar o Q.
  2. Defina o tamanho do bloco CIDR para a sub-rede de pods (DS):
    • Determine o tamanho do bloco CIDR selecionado para a sub-rede de pods (por exemplo, /17).
  3. Calcule o tamanho da máscara de rede (M):
M = 31 - ⌈log₂(Q)⌉  

Substitua Q pelo valor máximo de pods por nó. Use a função teto (⌈ ⌉) para arredondar para o número inteiro mais próximo. 4. Calcule os bits de host para o intervalo de pods (HM):

HM = 32 - M  
  1. Calcule os bits de host para o bloco CIDR selecionado (HD):
HD = 32 - DS  
  1. Calcule o número máximo de nós (MN):
MN = 2<sup>(HD - HM)</sup>  

O resultado desse cálculo é o número máximo de nós que a sub-rede de pods selecionada pode suportar. 7. Calcule o número máximo de pods (MP):

MP = MN * Q  

O resultado desse cálculo é o número máximo de pods que o cluster pode suportar. 8. Calcule o número de endereços IP utilizáveis no intervalo principal (N): none N = 2<sup>(32-S)</sup> - 4em que S é o comprimento do prefixo do intervalo CIDR principal da sub-rede.

Observações importantes

Exemplo

Imagine que você esteja criando um cluster do GKE Autopilot com o seguinte:

Calcule o número máximo de pods:

  1. M = 31 - ⌈log₂(32)⌉ = 26
  2. HM = 32 - 26 = 6
  3. HD = 32 - 17 = 15
  4. MN = 2(15 - 6) = 512
  5. MP = 512 * 32 = 16,384

Esse cluster pode aceitar no máximo 512 nós e 16.384 pods.

É possível adicionar mais endereços IPv4 para pods adicionando intervalos de endereços IPv4 de pods ou adicionando sub-redes a clusters.

Intervalo do endereço de IP secundário da sub-rede para Serviços

Planeje cuidadosamente seu intervalo de endereços IP secundário para Serviços. Como esse também é um intervalo de endereços IP secundário da sub-rede, ele não pode ser alterado depois da criação do cluster.

Se você usar serviços de vários clusters, o objeto ServiceImport usará endereços IP do intervalo de endereços IP secundários para serviços.

Nos clusters do Autopilot do GKE que executam a versão 1.27 e mais recentes e nos clusters do GKE Standard que executam as versões 1.29 e mais recentes, o GKE atribui endereços IP para serviços de um intervalo gerenciado pelo GKE por padrão: 34.118.224.0/20. Isso reduz a necessidade de especificar seu próprio intervalo de endereços IP para serviços. As seguintes considerações se aplicam:

A tabela a seguir mostra o número máximo de Serviços que podem ser criados em um único cluster usando a sub-rede, considerando o tamanho do intervalo de endereços de IP secundário da sub-rede para Serviços.

Intervalo de IP secundário para Serviços Número máximo de Serviços
/28 é o menor intervalo de endereços do serviço possívelquando o método de atribuição do intervalo secundário é gerenciado pelo usuário 16 serviços
/27 é o menor intervalo de endereços do serviço possívelquando o método de atribuição do intervalo secundário é gerenciado pelo GKE 32 Serviços
/26 64 Serviços
/25 128 Serviços
/24 256 Serviços
/23 512 Serviços
/22 1.024 Serviços
/21 2.048 Serviços
/20 É o tamanho padrão para o intervalo de IP secundário da sub-rede para serviços quando o método de atribuição de intervalo secundário é gerenciado pelo GKE 4.096 Serviços
/19 8.192 Serviços
/18 16.384 Serviços
/17 32.768 Serviços
/16 O maior intervalo de endereços de Serviço possível 65.536 Serviços

Compartilhamento de intervalos de endereços IP entre clusters do GKE

É possível compartilhar o intervalo primário, o intervalo de endereços IP secundário para pods e o intervalo de endereços IP secundário para Serviços entre clusters na mesma sub-rede. Esse comportamento está disponível para clusters Padrão e Autopilot.

Convém compartilhar intervalos de endereços IP se você tem uma equipe centralizada que gerencia a infraestrutura dos clusters. É possível reduzir a sobrecarga criando três intervalos para pods, Serviços e nós e reutilizando ou compartilhando-os, especialmente em um modelo de VPC compartilhada. Além disso, os administradores de rede podem gerenciar endereços IP mais facilmente, já que não precisam criar sub-redes específicas para cada cluster.

Compartilhamento do intervalo de sub-rede personalizado para o plano de controle

Por padrão, o GKE usa o intervalo de sub-rede principal para provisionar o endpoint interno do plano de controle. No entanto, em clusters com Private Service Connect, é possível configurar o GKE para provisionar o endpoint interno de uma sub-rede diferente que você criou. É possível compartilhar essa sub-rede entre outros clusters ou projetos se você estiver usando a VPC compartilhada.

Compartilhamento do intervalo de endereços IP primário para nós

Se você criar mais de um cluster na sub-rede, o intervalo de endereços IP primário para nós será compartilhado por padrão.

O compartilhamento do endereço IP principal para nós tem estas limitações:

Quando você compartilha o intervalo secundário para pods, cada pod ainda recebe um endereço IP exclusivo.

O compartilhamento do intervalo de endereços IP secundário para pods tem estas limitações:

Dois ou mais clusters podem usar simultaneamente o mesmo intervalo de endereços IPv4 secundário da sub-rede para serviços quando você usa intervalos secundários gerenciados pelo usuário.

Para configurar dois ou mais clusters para compartilhar um intervalo de endereços IPv4 secundário comum da sub-rede para serviços, use o mesmo intervalo de endereços IPv4 secundário da sub-rede ao criar cada cluster. Não é necessário um sinalizador de configuração separado para compartilhar um intervalo de endereços IPv4 comum para serviços.

Ao compartilhar um intervalo de endereços IPv4 comum para serviços, cada cluster usa o intervalo de endereços IPv4 secundário da sub-rede para serviços internamente. Os endereços IP para serviços são programados no nó de cada cluster, mas não são atribuídos à interface de rede de nenhum nó. Os endereços IP de serviço não podem ser roteados na rede VPC do cluster. Os endereços IP de serviço só podem ser usados por pods de cliente no mesmo cluster do serviço.

Quando um pod envia um pacote para um endereço IP de serviço, a configuração iptables ou eBPF no nó executa a conversão de endereços de rede (NAT, na sigla em inglês) de destino, alterando o endereço IP de destino do pacote do endereço IP de serviço para um endereço IP de pod de serviço. O pacote é roteado com base no endereço IP do pod de destino.

O compartilhamento do intervalo de endereços IP secundário para Serviços oferece estes benefícios:

O compartilhamento do intervalo de endereços IP secundário para Serviços tem estas limitações:

^gke-.*-services-[abcdef0-9]{8}  

Intervalos de limitação de nós

O número máximo de pods e serviços para um determinado cluster do GKE é limitado pelo tamanho dos intervalos secundários do cluster. O número máximo de nós no cluster é limitado pelo tamanho do intervalo de endereços IP primário da sub-rede do cluster e do intervalo de endereços do pod do cluster.

A mensagem de erro a seguir indica que o intervalo de endereços IP principal da sub-rede ou o intervalo de endereços IP do pod do cluster (o intervalo de endereços IP secundário da sub-rede para pods) foi esgotado:

Instance [node name] creation failed: IP space of [cluster subnet] is
exhausted

Adicione mais endereços IP para nós expandindo a sub-rede principal ou adicione novos endereços IP para pods usando CIDR de vários pods descontínuos. Para mais informações, consulte Não há espaço de endereço IP livre suficiente para pods.

Rede de pilha dupla IPv4/IPv6

Com a rede de pilha dupla IPv4/IPv6, é possível definir como o GKE aloca endereços IP (ipFamilies) para os seguintes objetos:

Na versão 1.24 do GKE ou posterior, é possível ativar a rede de pilha dupla para novos clusters do GKE em redes VPC independentes e compartilhadas. Também é possível aplicar políticas de rede com rede de pilha dupla ativada. Se você encontrar erros de validação ao ativar a rede de pilha dupla nos clusters do GKE que foram atualizados das versões 1.24 para 1.25 ou 1.26, entre em contato com a Google Cloud equipe de suporte.

Vantagens

A rede de pilha dupla oferece os seguintes benefícios:

Disponibilidade

A rede de pilha dupla com o GKE tem as seguintes restrições:

Considere as restrições anteriores antes de criar um cluster com rede de pilha dupla. Para mais informações, saiba como criar um cluster nativo de VPC com rede de pilha dupla.

Atribuição de endereços IPv6 públicos e privados

A tabela a seguir traz um resumo de endereços IPv6 público e particular com comportamento e configurações de rede de pilha dupla:

Sinalização ipv6-access-type Atribuição de endereços IP Intervalo da sub-rede
EXTERNAL O GKE atribui endereços IPv6 externos que são roteáveis para a Internet. De 2600:1900/28
INTERNAL O GKE atribui endereços IPv6 internos que não são roteáveis para a Internet. Clusters com tipo de acesso IPv6 INTERNAL não podem acessar a Internet por endereços IPv6. No entanto, o Cloud NAT não é compatível com endereços IPv6. A partir de fd20::/20, que é um subconjunto do intervalo geral de ULA: fc00::/7.

Para saber mais, consulte como usar uma rede de pilha dupla em um cluster nativo de VPC.

Arquitetura

Um cluster com rede de pilha dupla IPv4/IPv6 tem os seguintes intervalos alocados:

O diagrama a seguir mostra como o Google Cloud e o GKE alocam endereços IPv6:

Alocação de endereços IPv6 no GKE. Diagrama mostrando como o Google Cloud e o GKE alocam endereços IPv6.

No diagrama, o intervalo principal da sub-rede VPC é 2600:1900:0:1::/64 e o intervalo reservado para os serviços do GKE é 2600:2D00:0:4::0:0/64. Cada nó no cluster tem um intervalo /96 para o intervalo de endereços IP do nó principal e um intervalo /112 para o intervalo de endereços IP do pod. O cluster também tem um intervalo de endereços IP secundário de /112 serviços.

Serviços

É possível criar um serviço de pilha dupla IPv4/IPv6 do tipo ClusterIP ou NodePort. Os novos clusters do GKE que executam a versão 1.29 ou mais recente são compatíveis com serviços de pilha dupla do tipoLoadBalancer.

É possível expor uma implantação com um serviço do tipo ClusterIP, NodePort ou LoadBalancer. Para cada um desses tipos de serviço, é possível definir os campos ipFamilies e ipFamilyPolicy como IPv4, IPv6 ou como um serviço de pilha dupla. Para mais informações, consulte um exemplo de como configurar uma implantação.

A seguir