Como criar um cluster baseado em rotas


Nesta página, você aprende a criar um cluster no Google Kubernetes Engine (GKR), com base em rotas.

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 as rotas do Google Cloud Platform é chamado de cluster baseado em rotas. Um cluster que usa IPs de alias é chamado de cluster nativo de VPC.

VPC-nativo é o tipo recomendado e é o padrão para novos clusters nas versões 1.21.0-gke.1500 e posteriores do GKE. Para criar um cluster baseado em rotas, desative explicitamente a opção VPC-native.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando gcloud components update.

Criar um cluster baseado em rotas

Crie um cluster baseado em rotas usando a gcloud CLI ou o Console do Google Cloud.

gcloud

Para criar um cluster baseado em rotas, inclua a sinalização --no-enable-ip-alias no comando de criação do cluster:

gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias

Substitua CLUSTER_NAME por um nome escolhido para um cluster.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Digite um nome para seu cluster.

  4. No painel de navegação, em Cluster, clique em Rede.

  5. Em Opções avançadas de rede, desmarque a caixa de seleção Ativar roteamento de tráfego nativo de VPC (usa IP do alias).

  6. Clique em Criar.

Criar um cluster baseado em rotas e selecionar o intervalo de IP do plano de controle

Por padrão, os clusters com o Private Service Connect usam o intervalo de sub-rede principal para provisionar o endereço IP interno atribuído ao endpoint do plano de controle. É possível substituir essa configuração padrão selecionando um intervalo de sub-rede diferente somente durante o momento de criação do cluster. As seções a seguir mostram como criar um cluster com o Private Service Connect e modificar o intervalo de sub-rede.

gcloud

Crie um cluster com o Private Service Connect:

gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias \
    --private-endpoint-subnetwork=SUBNET_NAME \
    --region=COMPUTE_REGION

Substitua:

  • CLUSTER_NAME: o nome do cluster do GKE.
  • SUBNET_NAME: o nome de uma sub-rede atual.
  • COMPUTE_REGION: a região de computação do cluster. Para criar um cluster de zona, substitua essa sinalização por --zone=COMPUTE_ZONE, em que COMPUTE_ZONE é uma zona do Compute.

Console

Pré-requisito

Para atribuir uma sub-rede ao plano de controle de um novo cluster, primeiro é preciso adicionar uma sub-rede.

Criar um cluster e transferir o intervalo de IP do plano de controle

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Digite um nome para seu cluster.

  4. No painel de navegação, em Cluster, clique em Rede.

  5. Na seção Acesso à rede IPv4, faça o seguinte:

    1. Para criar um cluster do GKE como público, selecione o botão de opção Cluster público.
    2. Para criar um cluster do GKE como particular, selecione o botão de opção Cluster particular.

    Em ambos os casos, é possível alterar o modo de isolamento de clusters ao editar a configuração do cluster.

  6. Na seção Opções de rede avançadas, marque a caixa de seleção Substituir a sub-rede de endpoint particular padrão do plano de controle.

  7. Na lista Sub-rede do endpoint particular, selecione a sub-rede criada.

  8. Desmarque a caixa de seleção Ativar o roteamento de tráfego nativo de VPC (usa o IP do alias).

  9. Clique em Criar.

Verificar se o cluster usa rotas

gcloud

Liste os nós do cluster:

kubectl get nodes

A saída mostra os nomes dos nós:

NAME                                 STATUS   ...     AGE    VERSION
gke-xxx-default-pool-83e239a7-kcg8   Ready    ...     42m    v1.9.7-gke.6
gke-xxx-default-pool-83e239a7-qm6b   Ready    ...     42m    v1.9.7-gke.6
gke-xxx-default-pool-83e239a7-wnrq   Ready    ...     42m    1.9.7-gke.6

Liste suas rotas:

gcloud compute routes list

Na saída, na coluna NEXT_HOP, procure o nome de um dos nós do cluster:

NAME                 NETWORK        DEST_RANGE         NEXT_HOP
...
[ROUTE_NAME]         default        10.24.0.0/24       [YOUR_NODE_NAME]
...

Nessa saída, a rota fornece um próximo salto para qualquer pacote destinado a um determinado intervalo de endereços de pods.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer inspecionar.

  3. Na página Detalhes do cluster, clique na guia Nós.

  4. Na seção Nós, observe os nomes de qualquer um dos nós.

  5. Acesse a página Rotas no console do Google Cloud.

    Acessar a página Rotas

  6. Na lista de rotas, na coluna Próximo salto, procure o nome de um dos nós do cluster. Clique no nome da rota nessa linha.

  7. Na página Detalhes da rota, consulte a seção Próximo salto para verificar se a rota fornece um próximo salto para qualquer pacote destinado a um determinado intervalo de endereços de pods.

Pods por nó

Em um cluster com base em rotas, cada nó recebe um intervalo /24 de endereços IP para pods. Com um intervalo /24, existem 256 endereços, mas o número máximo de pods por nó é 110. Tendo aproximadamente o dobro de endereços IP disponíveis quanto possível, o Kubernetes é capaz de mitigar a reutilização de endereços IP à medida que os pods são adicionados e removidos dos nós.

Intervalo de endereços do pod

Um cluster com base em rotas tem um intervalo de endereços IP que são usados para pods e serviços. Mesmo que o intervalo seja usado tanto para pods quanto para serviços, ele é chamado de intervalo de endereço de pod. O último /20 do intervalo de endereços de pods é usado para serviços. Um intervalo /20 tem 212 = 4096 endereços. Portanto, 4096 endereços são usados para serviços e o restante do intervalo é usado para pods.

Na saída do comando, o intervalo de endereços do pod é chamado de clusterIpv4Cidr, e o intervalo de endereços usado para os Serviços é chamado de servicesIpv4Cidr. Por exemplo, a saída de gcloud container clusters describe inclui uma saída semelhante à seguinte:

clusterIpv4Cidr: 10.96.0.0/16
...
servicesIpv4Cidr: 10.96.240.0/20

O intervalo de endereços do pod pode ser de qualquer bloco RFC 1918: 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16.

É possível personalizar o intervalo de endereços de pods especificando um intervalo CIDR. Por exemplo, é possível especificar o intervalo 10.96.0.0/16.

gcloud

gcloud container clusters create CLUSTER_NAME \
    --no-enable-ip-alias \
    --cluster-ipv4-cidr 10.96.0.0/16

Substitua CLUSTER_NAME por um nome escolhido para um cluster.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Digite um nome para seu cluster.

  4. No painel de navegação, em Cluster, clique em Rede.

  5. Em Opções avançadas de rede, desmarque a caixa de seleção Ativar roteamento de tráfego nativo de VPC (usa IP do alias).

  6. No campo Intervalo de endereços do pod, insira 10.96.0.0/16.

  7. Clique em Criar.

Considerações para dimensionamento de clusters

O número máximo de nós, pods e serviços para um determinado cluster GKE é determinado pelo tamanho da sub-rede do cluster e pelo tamanho do intervalo de endereços de pods. Não é possível alterar o tamanho do intervalo de endereços de pods depois de criar um cluster. Ao criar um cluster, escolha um intervalo de endereço de pods suficientemente grande, de forma que acomode o crescimento previsto do cluster.

A tabela a seguir mostra como escolher intervalos de endereços que são suficientes para um cluster com 900 nós:

Intervalo Orientação
Nós

Endereços IP de nós são recebidos do intervalo principal da sub-rede do cluster. Sua sub-rede de cluster precisa ser grande o suficiente para armazenar o número total de nós no cluster.

Por exemplo, se você planeja criar um cluster de 900 nós, a sub-rede do cluster deve ter pelo menos um tamanho de /22. Um intervalo /22 tem 210 = 1024 endereços. Subtraia os 4 endereços IP reservados inutilizáveis e você terá 1020, o que é suficiente para os 900 nós.

Intervalo de endereços do pod

Cada nó tem um intervalo /24 de endereços IP para pods. Um intervalo /24 tem 28 = 256 endereços. Lembre-se de que 4096 endereços no intervalo de endereços de pods são usados para serviços. A parte restante do intervalo de endereços de pods é usada para pods e deve ser grande o suficiente para armazenar o número de nós x 256 endereços.

Suponha que você planeje criar um cluster de 900 nós. Então você precisa de 900 x 256 = 230.400 endereços para pods. Agora, suponha que você tenha um intervalo de endereços de pods /14. Um intervalo /14 tem 218 = 262.144 endereços. Subtraia os 4096 endereços usados para serviços e você terá 258.048, o que é suficiente para 900 nós.

Padrões e limites para tamanhos de intervalos

Na tabela a seguir, veja os tamanhos mínimo, máximo e padrão para a sub-rede do cluster e para o intervalo de endereços de pods.

Intervalo Tamanho padrão Tamanho mínimo Tamanho máximo
Nós

/20, que tem 212 = 4.096 endereços. Subtraia 4 endereços reservados e você terá 4092 endereços para nós.

/29, que tem 23 = 8 endereços. Subtraia 4 endereços reservados e você terá 4 endereços para nós.

/7, que tem 225 endereços. Isso representa aproximadamente 33 milhões de endereços para nós.

Intervalo de endereços do pod

/14, que tem 218 = 262.144 endereços.

/19, que tem 213 = 8192 endereços.

/9, que tem 223 = 8.388.608 endereços.

Restrições

  • Não é possível migrar um cluster nativo de VPC para um cluster baseado em rotas.
  • Não é possível migrar um cluster baseado em rotas para um cluster nativo de VPC.
  • Os clusters baseados em rotas só podem usar endereços no intervalo RFC 1918 para endereços IP privados. Os clusters nativos de VPC têm um intervalo maior de endereços utilizáveis.
  • Os clusters baseados em rotas não aceitam rede de pilha dupla.

A seguir