Esta página mostra como criar um cluster baseado em rotas no Google Kubernetes Engine (GKE).
Vista geral
No GKE, os clusters podem ser distinguidos de acordo com a forma como encaminham o tráfego de um pod para outro. Um cluster que usa Google Cloud Rotas é denominado cluster baseado em rotas. Um cluster que usa IPs de alias é denominado cluster nativo de VPC.
O tipo nativo de VPC é o tipo recomendado e o predefinido para novos clusters nas versões 1.21.0-gke.1500 e posteriores do GKE. Para criar um cluster baseado em rotas, tem de desativar explicitamente a opção nativa da VPC.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
Crie um cluster baseado em rotas
Pode criar um cluster baseado em rotas através da CLI gcloud ou da Google Cloud consola.
gcloud
Para criar um cluster baseado em rotas, inclua a flag --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 que escolher para o seu cluster.
Consola
Na Google Cloud consola, aceda à página Criar um cluster do Kubernetes.
Introduza um nome para o cluster.
No painel de navegação, em Cluster, clique em Rede.
Em Opções de redes avançadas, desmarque a caixa de verificação Ativar encaminhamento de tráfego nativo da VPC (usa IP de alias).
Clique em Criar.
Crie um cluster baseado em rotas e selecione o intervalo de IPs do plano de controlo
Por predefinição, os clusters com o Private Service Connect usam o intervalo de sub-rede principal para aprovisionar o endereço IP interno atribuído ao ponto final do plano de controlo. Pode substituir esta definição predefinida selecionando um intervalo de sub-redes diferente apenas durante a criação do cluster. As secções seguintes mostram como criar um cluster com o Private Service Connect e substituir o intervalo de sub-redes.
gcloud
Crie um cluster com o Private Service Connect:
gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias \
--private-endpoint-subnetwork=SUBNET_NAME \
--location=CONTROL_PLANE_LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster do GKE.SUBNET_NAME
: o nome de uma sub-rede existente.CONTROL_PLANE_LOCATION
: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.
Consola
Pré-requisito
Para atribuir uma sub-rede ao plano de controlo de um novo cluster, tem de adicionar uma sub-rede primeiro.
Crie um cluster e atribua o intervalo de IPs do plano de controlo
Na Google Cloud consola, aceda à página Criar um cluster do Kubernetes.
Introduza um nome para o cluster.
No painel de navegação, em Cluster, clique em Rede.
Em Acesso ao plano de controlo, configure o acesso aos pontos finais do plano de controlo.
Na secção Opções de rede avançadas, selecione a caixa de verificação Substituir a sub-rede do ponto final privado predefinido do plano de controlo.
Na lista Sub-rede do ponto final privado, selecione a sub-rede criada.
Desmarque a caixa de verificação Ativar o encaminhamento de tráfego nativo da VPC (usa o IP de alias).
Clique em Criar.
Verifique se o cluster usa rotas
gcloud
Apresente uma lista dos nós do cluster:
kubectl get nodes
O resultado mostra os nomes dos seus 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
Apresentar uma lista dos seus trajetos:
gcloud compute routes list
Neste resultado, 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]
...
Nesta saída, a rota fornece um próximo salto para qualquer pacote destinado a um intervalo de endereços de Pod específico.
Consola
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
Na lista de clusters, clique no nome do cluster que quer inspecionar.
Na página Detalhes do cluster, clique no separador Nós.
Na secção Nós, tome nota dos nomes de qualquer um dos nós.
Aceda à página Rotas na Google Cloud consola.
Na lista de trajetos, na coluna Próximo salto, procure o nome de um dos nós do cluster. Clique no nome do trajeto dessa linha.
Na página Detalhes do trajeto, verifique a secção Salto seguinte para confirmar se o trajeto fornece um salto seguinte para qualquer pacote destinado a um intervalo de endereços de Pod específico.
Pods por nó
Num cluster baseado em rotas, a cada nó é atribuído 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. Ao ter aproximadamente o dobro dos endereços IP disponíveis em comparação com os pods possíveis, o Kubernetes consegue mitigar a reutilização de endereços IP à medida que os pods são adicionados e removidos de um nó.
Intervalo de endereços do pod
Um cluster baseado em rotas tem um intervalo de endereços IP que são usados para pods e serviços. Embora o intervalo seja usado para Pods e Serviços, é denominado intervalo de endereços de Pods. O último /20 do intervalo de endereços do pod é usado para serviços. Um intervalo /20 tem 212 = 4096 endereços. Assim, são usadas 4096 moradas para os serviços e o resto do intervalo é usado para os pods.
Na saída do comando, o intervalo de endereços do pod é denominado clusterIpv4Cidr
e o intervalo de endereços usados para serviços é denominado servicesIpv4Cidr
. Por exemplo, o resultado de gcloud container clusters describe
inclui um resultado semelhante ao 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
.
Pode personalizar o intervalo de endereços do pod especificando um intervalo CIDR. Por exemplo, pode 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 que escolher para o seu cluster.
Consola
Na Google Cloud consola, aceda à página Criar um cluster do Kubernetes.
Introduza um nome para o cluster.
No painel de navegação, em Cluster, clique em Rede.
Em Opções de redes avançadas, desmarque a caixa de verificação Ativar encaminhamento de tráfego nativo da VPC (usa IP de alias).
No campo Intervalo de endereços do pod, introduza
10.96.0.0/16
.Clique em Criar.
Considerações para o dimensionamento de clusters
O número máximo de nós, pods e serviços para um determinado cluster do GKE é determinado pelo tamanho da sub-rede do cluster e pelo tamanho do intervalo de endereços dos pods. Não pode alterar o tamanho do intervalo de endereços de pods depois de criar um cluster. Quando criar um cluster, certifique-se de que escolhe um intervalo de endereços de pods suficientemente grande para acomodar o crescimento previsto do cluster.
A tabela seguinte explica como escolher intervalos de endereços suficientes para um cluster com 900 nós:
Intervalo | Orientação |
---|---|
Nós |
Os endereços IP dos nós são retirados do intervalo principal da sub-rede do cluster. A sub-rede do cluster tem de ser suficientemente grande para conter o número total de nós no cluster. Por exemplo, se planear criar um cluster de 900 nós, a sub-rede do cluster tem de ter, pelo menos, um tamanho de /22. Um intervalo /22 tem 210 = 1024 endereços. Subtraia os 4 endereços IP não utilizáveis, e obtém 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. Recorde que são usadas 4096 moradas no intervalo de moradas do pod para serviços. A parte restante do intervalo de endereços do agrupamento é usada para agrupamentos e tem de ser suficientemente grande para conter o número de nós x 256 endereços. Suponhamos que planeia criar um cluster de 900 nós. Então,precisa de 900 x 256 = 230 400 endereços para os Pods. Suponhamos que tem um intervalo de endereços de pod /14. Um intervalo /14 tem 218 = 262 144 endereços. Subtraia os 4096 endereços usados para serviços e obtém 258 048, o que é suficiente para 900 nós. |
Predefinições e limites para tamanhos de intervalos
A tabela seguinte indica os tamanhos mínimo, máximo e predefinido para a sub-rede do cluster e o intervalo de endereços do pod.
Intervalo | Tamanho predefinido | Tamanho mínimo | Tamanho máximo |
---|---|---|---|
Nós | /20, que tem 212 = 4096 endereços. Subtraia 4 endereços reservados e obtém 4092 endereços para nós. |
/29, que tem 23 = 8 endereços. Subtraia 4 endereços reservados e obtém 4 endereços para nós. |
/7, que tem 225 endereços. Isto corresponde a 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 pode migrar um cluster nativo de VPC para um cluster baseado em encaminhamento.
- Não é possível migrar um cluster baseado em rotas para um cluster nativo da 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 suportam redes de pilha dupla.