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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em add_box Criar.
Digite um nome para seu cluster.
No painel de navegação, em Cluster, clique em Rede.
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).
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 queCOMPUTE_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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em add_box Criar.
Digite um nome para seu cluster.
No painel de navegação, em Cluster, clique em Rede.
Na seção Acesso à rede IPv4, faça o seguinte:
- Para criar um cluster do GKE como público, selecione o botão de opção Cluster público.
- 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.
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.
Na lista Sub-rede do endpoint particular, selecione a sub-rede criada.
Desmarque a caixa de seleção Ativar o roteamento de tráfego nativo de VPC (usa o IP do alias).
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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Na lista de clusters, clique no nome do cluster que você quer inspecionar.
Na página Detalhes do cluster, clique na guia Nós.
Na seção Nós, observe os nomes de qualquer um dos nós.
Acesse a página Rotas no console do Google Cloud.
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.
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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em add_box Criar.
Digite um nome para seu cluster.
No painel de navegação, em Cluster, clique em Rede.
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).
No campo Intervalo de endereços do pod, insira
10.96.0.0/16
.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
- Como criar um cluster nativo de VPC
- Como criar um cluster zonal
- Visão geral dos intervalos de IP de alias