Nesta página, mostramos como adicionar intervalos de endereços IP de pod secundários novos ou atuais aos clusters do GKE com CIDR de vários pods descontínuos.
Por que adicionar mais intervalos IPv4 de pod
Como administrador da plataforma, você pode adicionar mais intervalos IPv4 de pod criando intervalos secundários adicionais. Isso pode ser útil nos seguintes cenários:
- Quando o cluster estiver ficando sem endereços IP de pod.
- Quando você quer alocar endereços IP de forma eficiente antecipando o futuro.
- Quando é possível usar espaços de endereços IP fragmentados nos clusters.
- Quando é possível realocar endereços IP em resposta às mudanças nas necessidades comerciais.
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
.
- Revise a seção Adicionar mais intervalos IPv4 de pod para casos de uso específicos.
- Use somente clusters nativos de VPC.
Adicionar mais intervalos IPv4 de pod com o Autopilot do GKE
Para clusters do GKE Autopilot na versão 1.26 ou posterior, é possível adicionar mais intervalos IPv4 de pod criando intervalos secundários adicionais e atribuindo-os ao cluster.
Criar um intervalo secundário adicional para uma sub-rede
Console
Acesse a página Redes VPC no Console do Google Cloud.
Na lista Redes VPC, selecione a rede que você quer expandir.
Na lista Sub-redes, selecione a sub-rede que você quer.
Clique em Editar.
Clique em Adicionar intervalo de IP.
Em Nome do intervalo da sub-rede, insira o nome adicional do intervalo do pod. Por exemplo,
pod-range-2
.Em Intervalo de IP secundário, insira o intervalo de IP. Por exemplo,
10.2.204.0/22
.Clique em Save.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--add-secondary-ranges ADDITIONAL_RANGE=RANGE \
--location=COMPUTE_LOCATION
Substitua:
SUBNET_NAME
: o nome da sub-rede a que você quer adicionar um intervalo. Ele precisa ser a sub-rede atribuída ao cluster.ADDITIONAL_RANGE
: o nome do intervalo de pod a ser adicionado ao cluster. Por exemplo,pod-range-2
. Para especificar vários intervalos, separe os nomes por vírgula. Exemplo:pod-range-1
,pod-range-2
.RANGE
: o intervalo de endereços IP a ser adicionado ao cluster.COMPUTE_LOCATION
: o local do Compute Engine da sub-rede.
Atribuir intervalos secundários adicionais ao cluster
Crie intervalos secundários adicionais e atribua-os ao cluster. É possível usar o console do Google Cloud ou a Google Cloud CLI:
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Ao lado do cluster que você quer editar, clique em more_vert Ações e, depois, em edit Editar.
Na seção Rede, ao lado de Intervalos IPv4 do pod de cluster (adicionais), clique em edit Editar.
Na caixa de diálogo Editar intervalos IPv4 adicionais do pod de cluster, selecione os intervalos CIDR secundários do pod que você quer adicionar ao cluster. Use o mesmo nome de intervalo do pod criado na sub-rede como intervalos secundários adicionais para o cluster.
Clique em Salvar alterações.
gcloud
Atualize o cluster para usar um intervalo de endereços IP adicional:
gcloud container clusters update CLUSTER_NAME \ --additional-pod-ipv4-ranges=ADDITIONAL_RANGE \ --location=COMPUTE_LOCATION
Substitua:
CLUSTER_NAME
: o nome do cluster. Seu cluster precisa estar executando a versão 1.26.0 ou posterior.ADDITIONAL_RANGE
: o nome do intervalo de pod a ser adicionado ao cluster. Use o mesmo nome de intervalo do pod criado na sub-rede como intervalos secundários adicionais para o cluster.COMPUTE_LOCATION
: o local do Compute Engine da sub-rede.
Verifique se o novo endereço IP está atribuído ao cluster:
gcloud container clusters describe CLUSTER_NAME
O resultado será assim:
ipAllocationPolicy: additionalPodRangesConfig: podRangeNames: - pod-range-1 - pod-range-2 clusterIpv4Cidr: 10.10.0.0/23 clusterIpv4CidrBlock: 10.10.0.0/23 clusterSecondaryRangeName: cluster-pods
Adicionar mais intervalos IPv4 de pod com o GKE Standard
Para clusters do GKE Standard, é possível adicionar mais intervalos IPv4 de pod usando qualquer um dos seguintes métodos:
- Criar e atribuir intervalos secundários adicionais ao cluster: recomendado para usuários que não precisam controlar os intervalos de endereços IP do pod no nível do pool de nós. Esse método está disponível no GKE versão 1.26.0 ou posterior. Para mais informações, confira como Adicionar mais intervalos IPv4 de pod com o Autopilot do GKE.
- Crie um pool de nós com um novo intervalo secundário de endereços IP de pod: recomendado para usuários que precisam controlar totalmente os intervalos de endereços IP do pod dos seus pools de nós. Esse método está disponível na versão 1.20.4-gke.500 ou posterior do GKE.
- Criar um pool de nós usando um endereço IP secundário de pod atual: recomendado para usuários que precisam controlar totalmente os intervalos de endereços IP de pod atuais de pools de nós. Esse método está disponível no GKE versão 1.20.4-gke.500 ou posterior.
Criar um pool de nós com um novo intervalo de IP de pod secundário
Por padrão, o GKE associa um intervalo de pod ao pool de nós. Pode ser o intervalo de endereço IP do pod padrão do cluster ou um dos intervalos de pod adicionais (se houver) associados ao cluster. Com intervalos secundários adicionais, é possível especificar um intervalo de endereços IPv4 de pod durante a criação do pool de nós, e o pool de nós usa esse intervalo em vez do intervalo de endereço IP do pod secundário padrão do cluster.
Nesta seção, você cria um pool de nós com um intervalo de endereços IP do pod secundário.
É possível usar a Google Cloud CLI ou a API GKE.
gcloud
gcloud container node-pools create POOL_NAME \
--cluster CLUSTER_NAME \
--create-pod-ipv4-range name=RANGE_NAME,range=RANGE
Substitua:
POOL_NAME
: o nome do novo pool de nós.CLUSTER_NAME
: o nome do cluster.RANGE_NAME
: um nome opcional do novo intervalo de endereços IP do pod secundário.RANGE
: um intervalo opcional de endereços IP do pod fornecido como uma máscara de rede (/20
) ou um intervalo CIDR (10.12.4.0/20
). Se você fornecer uma máscara de rede, o GKE aloca um intervalo entre os intervalos disponíveis na rede do cluster. Se você não fornecer um valor pararange
, o GKE aloca automaticamente uma máscara de rede/14
, o tamanho padrão do intervalo de IP secundário da sub-rede para pods.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": true,
"podRange": "RANGE_NAME",
"podIpv4CidrBlock": "RANGE"
}
}
Substitua:
POOL_NAME
: o nome do novo pool de nós.RANGE_NAME
: um nome opcional do novo intervalo de endereços IP do pod secundário.RANGE
: um intervalo de endereços IP de pod opcional fornecido como uma máscara de rede (/20
) ou intervalo CIDR (10.12.0.0/20
). Se uma máscara de rede for especificada, o intervalo de IP será alocado automaticamente do espaço livre na rede do cluster. Se nenhum valor for fornecido, o GKE alocará automaticamente uma máscara de rede/14
, o tamanho padrão do intervalo de IP secundário da sub-rede para pods.
Criar um pool de nós usando um intervalo de IP de pod secundário
Nesta seção, você cria um pool de nós com um intervalo de endereços IP do pod secundário atual.
É possível usar a CLI gcloud ou a API GKE.
gcloud
gcloud container node-pools create POOL_NAME \
--cluster CLUSTER_NAME \
--pod-ipv4-range RANGE_NAME
Substitua:
POOL_NAME
: o nome do novo pool de nós.CLUSTER_NAME
: o nome do cluster.RANGE_NAME
: o nome de um intervalo de endereços IP do pod secundário na sub-rede do cluster.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"podRange": "RANGE_NAME"
}
}
Substitua:
POOL_NAME
: o nome do novo pool de nós.RANGE_NAME
: o nome de um intervalo de endereços IP do pod secundário na sub-rede do cluster.
Verificar o bloco de CIDR de pod para um pool de nós
Para determinar qual bloco de CIDR de pod é usado para pods em um determinado pool de nós, use o comando a seguir:
gcloud container node-pools describe POOL_NAME \
--cluster CLUSTER_NAME
A saída será assim:
...
networkConfig:
podIpv4CidrBlock: 192.168.0.0/18
podRange: podrange
...
Se o pool de nós estiver usando CIDR não contíguos de vários pods, podRange
e
podIpv4CidrBlock
exibirão os valores configurados para esse pool de nós.
Se o pool de nós não estiver usando CIDR de vários pods não contíguos, podRange
e podIpv4CidrBlock
exibirão os valores padrão do cluster, clusterSecondaryRangeName
e clusterIpv4CidrBlock
de IPAllocationPolicy.
Adicionar mais intervalos IPv4 de pod para casos de uso específicos
- Se você usar o
ip-masq-agent
configurado com o parâmetrononMasqueradeCIDRs
, atualize ononMasqueradeCIDRs
para incluir todos os intervalos secundários adicionais. - Se você usar
NetworkPolicy
configurado com umipBlock
para especificar o tráfego, será necessário atualizar o valor CIDR para incluir todos os intervalos de CIDR do pod. - Para a VPC compartilhada, você precisa predefinir outra conta de serviço.
- Para adicionar um intervalo secundário de endereço IP de pod ao cluster ou criar um pool de nós com um novo intervalo secundário, é necessário ter o papel de administrador de rede. Um papel de usuário só poderá usar esses recursos se tiver sido criado pelo administrador de rede.
- Se o projeto tiver mais de um cluster, crie e adicione um intervalo secundário de endereço IP de pod em cada cluster.
Como funciona o CIDR de vários pods descontínuos
Quando você cria um novo pool de nós, por padrão, ele usa o intervalo de endereços IP do pod padrão do cluster, também conhecido como CIDR do cluster. Com esse recurso, é possível especificar um intervalo de endereços IP do pod durante a criação do pool de nós, e o pool usa esse intervalo em vez do intervalo de endereços IP do pod padrão do cluster.
O diagrama a seguir mostra um cluster gerenciado pelo usuário com um bloco CIDR /24 como um intervalo de endereços IP do pod secundário (256 endereços IP) e dois nós que usam /25 Blocos CIDR para endereços IP do pod (128 endereços IP cada). O intervalo de endereços IP do pod secundário está esgotado, e não é possível adicionar outro nó ao cluster. Em vez de excluir e recriar o cluster, use o CIDR de vários pods descontínuos para expandir os endereços IP do pod com blocos CIDR /20. O cluster é expandido para incluir um terceiro nó que usa o bloco CIDR /25 para endereços IP do pod provenientes do bloco /20.
Regra de firewall modificada
Quando o GKE cria um cluster, ele cria uma regra de firewall para ativar a comunicação entre pods, gke-[cluster-name]-[cluster-hash]-all
.
Quando você cria ou exclui um pool de nós com CIDR de vários pods não contíguos ativado, o GKE atualiza o valor de origem dessa regra de firewall para todos os CIDRs usados pelo cluster para IPs de pod.
Solução de problemas
É possível ativar os registros de fluxo de VPC para determinar se os pacotes estão sendo enviados para os nós corretamente.
A seguir
- Saiba mais sobre os clusters nativos de VPC.
- Leia a visão geral da rede do GKE.
- Saiba mais sobre Como otimizar a alocação de endereços IP.
- Saiba mais sobre os insights de utilização de endereços IP do GKE.