Nesta página, mostramos como atribuir sub-redes adicionais a um cluster nativo de VPC. Com as sub-redes adicionais atribuídas a um cluster, é possível criar pools de nós em que os endereços IPv4 para nós e pods vêm dos intervalos de sub-redes adicionais.
Esta página é destinada a especialistas em redes que projetam e arquitetam a rede para a organização. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo do Google Cloud , consulte Tarefas e funções de usuário comuns do GKE Enterprise.
Visão geral
Ao criar um cluster nativo de VPC do GKE, você seleciona uma sub-rede padrão para ele. A sub-rede padrão do cluster fornece endereços IPv4 para nós, pods e serviços, conforme descrito em Intervalos de endereços IP para clusters nativos de VPC.
É possível atribuir até oito sub-redes adicionais a um cluster nativo de VPC, permitindo um crescimento significativo do cluster. Cada sub-rede adicional recém-atribuída é chamada de sub-rede não padrão.
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 CLI do Google Cloud para essa tarefa,
instale e inicialize a
gcloud CLI. Se você instalou a gcloud CLI anteriormente, instale a versão
mais recente executando
gcloud components update
.
Requisitos e limitações
Esta seção descreve os requisitos e as limitações que se aplicam ao atribuir e usar sub-redes adicionais a um cluster. Você precisa atender a todos os requisitos antes de atribuir sub-redes adicionais.
- Verifique se o cluster do GKE é nativo de VPC e executa a versão 1.30.3-gke.1211000 ou mais recente do GKE. Os clusters baseados em rotas e os clusters em redes legadas não aceitam sub-redes adicionais.
- É possível atribuir até oito sub-redes adicionais por cluster.
- As sub-redes adicionais fornecem apenas endereços IPv4 para nós e pods. Não é possível usar sub-redes adicionais para fornecer endereços IPv6 para nós ou pods.
- Somente os novos pools de nós podem usar as sub-redes adicionais, não os pools de nós atuais. Quando você cria um pool de nós e várias sub-redes não padrão estão disponíveis, o GKE seleciona a melhor sub-rede para o pool de nós com base nos requisitos de endereços IP e na disponibilidade de endereços IP em todas as sub-redes do cluster.
- Os intervalos de endereços IPv4 secundários da sub-rede em uma sub-rede não padrão só podem ser usados por um único cluster.
- Se você usar o suporte a várias redes para pods, os intervalos de endereços IPv4 principais e de pods de uma sub-rede adicional não podem se sobrepor a nenhum intervalo de CIDR configurado na sua configuração de várias redes. As sub-redes adicionais que você configura se aplicam apenas à rede padrão. Essa limitação significa que qualquer interface de rede adicional nos nós e pods não pode usar os endereços IP fornecidos por essas sub-redes adicionais.
- Se o pool de endereços IP na sub-rede padrão estiver esgotado, não será possível escalonar automaticamente o cluster mesmo que você use sub-redes adicionais.
Requisitos do balanceador de carga para clusters com sub-redes adicionais
Nesta seção, descrevemos os requisitos do balanceador de carga que se aplicam quando você usa sub-redes adicionais no cluster. Esses requisitos se aplicam sempre que você cria um Entrada externo, um gateway externo ou um serviço LoadBalancer externo.
- Para usar um serviço externo Entrada, Gateway ou LoadBalancer em um cluster com sub-redes adicionais, o cluster precisa executar a versão 1.33.2-gke.4780000 ou mais recente do GKE.
- Objetos de entrada externos que usam o controlador de entrada do GKE precisam usar o balanceamento de carga nativo de contêiner.
- Ative a criação de subconjuntos do GKE para serviços LoadBalancer internos. A criação de subconjuntos do GKE afeta apenas os serviços LoadBalancer internos novos. Portanto, é necessário excluir e recriar todos os serviços atuais no cluster depois de ativar a criação de subconjuntos do GKE.
Para criar um balanceador de carga de rede de passagem externa baseado em serviço de back-end, os novos serviços LoadBalancer externos precisam incluir a anotação
cloud.google.com/l4-rbs: "enabled"
. Essa anotação afeta apenas novos serviços LoadBalancer externos e não se aplica aos serviços LoadBalancer externos atuais. Exclua e recrie todos os serviços LoadBalancer externos que foram criados sem a anotaçãocloud.google.com/l4-rbs: "enabled"
.O tipo de back-end usado (back-ends de NEG
GCE_VM_IP
ou back-ends de grupo de instâncias) depende da versão do GKE quando você cria o serviço LoadBalancer externo. Para mais informações, consulte Agrupamento de nós.
Adicionar uma nova sub-rede com um intervalo de endereços IPv4 de pod
Crie uma sub-rede e adicione um intervalo de endereços IPv4 secundário a ela. A sub-rede precisa estar na mesma região e rede VPC que o cluster:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK \ --region=REGION \ --range=PRIMARY_RANGE \ --add-secondary-ranges=POD_RANGE_NAME=SECONDARY_RANGE
Substitua:
SUBNET_NAME
: o nome da nova sub-rede;NETWORK
: o nome da rede VPC que contém a nova sub-rede.REGION
: a região onde a sub-rede está localizada.PRIMARY_RANGE
: o intervalo IPv4 principal da nova sub-rede, em notação CIDR. Para mais informações, consulte Intervalos de sub-rede IPv4.POD_RANGE_NAME
: um nome para o intervalo secundário.SECONDARY_RANGE
: o intervalo IPv4 secundário na notação CIDR. Para intervalos válidos, consulte Intervalos de sub-rede IPv4.
Para mais informações, consulte Trabalhar com sub-redes.
Atualize o cluster para usar a sub-rede adicional com a CLI gcloud:
gcloud container clusters update CLUSTER_NAME \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME
Substitua:
CLUSTER_NAME
: o nome do cluster atual.SUBNET_NAME
: o nome da nova sub-rede que você criou.POD_RANGE_NAME
: o nome do intervalo de endereços IPv4 secundário da sub-rede que você quer usar para o intervalo de endereços IPv4 do pod.
Adicionar uma nova sub-rede com vários intervalos de endereços IPv4 de pods
Crie uma sub-rede na mesma região e rede VPC do cluster. Defina o intervalo de endereços IPv4 principal da sub-rede como um intervalo de endereços IPv4 adicional para nós.
Para cada intervalo de endereços IPv4 de pod adicional necessário, adicione um novo intervalo de endereços IPv4 secundário da sub-rede à sub-rede criada na etapa anterior.
Atualize o cluster para usar a sub-rede adicional com a CLI gcloud. O exemplo a seguir adiciona uma sub-rede com dois intervalos de endereços IPv4 secundários de sub-rede para pods.
gcloud container clusters update CLUSTER_NAME \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME_1 \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME_2
Substitua:
CLUSTER_NAME
: o nome do cluster atual.SUBNET_NAME
: o nome da nova sub-rede que você criou.POD_RANGE_NAME_1
ePOD_RANGE_NAME_2
: os nomes dos intervalos de endereços IPv4 secundários da sub-rede que você quer usar para os intervalos de endereços IPv4 do pod.
Verificar as sub-redes
Por cluster: para conferir os detalhes de todas as sub-redes associadas a um cluster, execute o seguinte comando:
gcloud container clusters describe CLUSTER_NAME
Substitua CLUSTER_NAME
pelo nome do cluster.
O resultado será assim:
ipAllocationPolicy:
additionalIPRangesConfig:
- podIpv4RangeNames:
- pod-range-1
subnetwork: projects/user-gke-dev-2/regions/us-central1/subnetworks/shared-msc-subnets
Por pool de nós: para conferir os detalhes de todas as sub-redes associadas a um pool de nós, execute o seguinte comando:
gcloud container node-pools describe POOL_NAME \
--cluster=CLUSTER_NAME \
Substitua:
POOL_NAME
: o nome do pool de nós.CLUSTER_NAME
: o nome do cluster.
O resultado será assim:
name: pool-1
networkConfig:
podRange: pod-range-1
subnetwork: projects/user-gke-dev-2/regions/us-central1/subnetworks/shared-msc-subnets
Remover uma sub-rede não padrão
Remover uma sub-rede não padrão de um cluster instrui o cluster a não usar mais os intervalos da sub-rede em nenhum dos pools de nós do cluster. A remoção tem os seguintes efeitos:
- O intervalo de endereços IPv4 principal da sub-rede não padrão não pode ser usado para intervalos de endereços IPv4 de nós.
- Os intervalos de IPv4 secundários da sub-rede não padrão não podem ser usados para intervalos de IPv4 do pod.
Antes de remover uma sub-rede não padrão, exclua todos os pools de nós que a usam.
Para remover uma sub-rede não padrão do cluster, execute o seguinte comando:
gcloud container clusters update CLUSTER_NAME \
--remove-additional-ip-ranges= subnetwork=SUBNET_NAME
Substitua:
CLUSTER_NAME
: o nome do cluster.SUBNET_NAME
: o nome da sub-rede que você quer remover do cluster.
Depois de remover uma sub-rede não padrão do cluster, é possível excluir a sub-rede não padrão.
Remover um intervalo IPv4 secundário de uma sub-rede não padrão
Quando você remove um intervalo IPv4 secundário de sub-rede não padrão de um cluster, o GKE instrui o cluster a não usar esse intervalo para intervalos IPv4 de pod em nenhum pool de nós. Se o intervalo IPv4 secundário da sub-rede não padrão que você remover for o único intervalo da sub-rede não padrão usado por este cluster, o GKE também vai instruir o cluster a parar de usar o endereço IPv4 principal da sub-rede para endereços IPv4 de nós.
Antes de remover um intervalo IPv4 secundário de sub-rede não padrão, exclua todos os pools de nós que usam o intervalo para endereços IPv4 do pod.
Para remover um intervalo IPv4 secundário de uma sub-rede não padrão do cluster, execute o comando a seguir:
gcloud container clusters update CLUSTER_NAME \
--remove-additional-ip-ranges=\
subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME
Substitua:
CLUSTER_NAME
: o nome do cluster.SUBNET_NAME
: o nome da sub-rede não padrão.POD_RANGE_NAME
: o nome do intervalo de endereços IPv4 secundário não padrão da sub-rede que você quer remover do cluster.
Depois de remover um intervalo IPv4 secundário de sub-rede não padrão do cluster, você pode excluir o intervalo IPv4 secundário de sub-rede não padrão.
A seguir
- Saiba mais sobre os clusters nativos de VPC.
- Saiba como adicionar intervalos de endereços IPv4 de pods.
- Saiba mais sobre como otimizar a alocação de endereços IP configurando o número máximo de pods por nó.