Nesta página, mostramos como configurar intervalos de endereços IPv4 de pods adicionais para um cluster nativo de VPC e como especificar intervalos de endereços IPv4 do pod personalizados para pools de nós de um cluster nativo de VPC.
Os intervalos de endereços IPv4 do pod em clusters nativos de VPC sempre vêm de intervalos de endereços IPv4 secundários da sub-rede. Ao criar um cluster, você atribui a ele um intervalo de endereços IPv4 de pods padrão.
- Para clusters do Autopilot e Standard, é possível configurar um cluster para usar mais intervalos de endereços IPv4 de pods. O GKE usa esses outros intervalos de endereços IPv4 de pods para endereços IPv4 em nós criados em pools de nós futuros.
- Para clusters padrão, é possível criar pools de nós que usam um intervalo de endereços IPv4 secundário de sub-rede personalizado para os endereços IPv4 do pod.
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
.
- Verifique se você tem o papel do Gerenciamento de identidade e acesso (IAM) Administrador de rede do Compute no projeto que contém a sub-rede do cluster. Isso é necessário para criar novos intervalos de endereços IPv4 secundários da sub-rede. Ao usar a VPC compartilhada, você precisará coordenar com o administrador de rede o projeto host da VPC compartilhada.
- Verifique se o cluster do GKE é nativo de VPC. Os clusters baseados em rotas não são compatíveis com outros intervalos de endereços IPv4 de pods ou intervalos de endereços IPv4 personalizados de pools de nós.
- Consulte a seção Etapas de acompanhamento.
Criar um novo intervalo de endereços IPv4 secundários da sub-rede
Para criar um novo intervalo de endereços IPv4 secundários da sub-rede, use o console do Google Cloud ou a Google Cloud CLI. Cada sub-rede aceita até 30 intervalos secundários de endereços IPv4. Para mais informações, consulte Editar intervalos IPv4 secundários na documentação da VPC.
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 do novo intervalo de endereços IPv4 secundário da sub-rede. Por exemplo,
pod-range-2
.Em Intervalo de IP secundário, digite o intervalo de endereços IPv4 no formato CIDR. Por exemplo,
10.2.204.0/22
.Clique em Salvar.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--region=REGION \
--add-secondary-ranges=SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR
Substitua:
SUBNET_NAME
: o nome da sub-rede do cluster (a mesma sub-rede atribuída ao cluster quando ele foi criado).REGION
: a região da sub-rede da sub-rede do cluster. A região da sub-rede do cluster é a que contém o cluster do GKE.SECONDARY_RANGE_NAME
: o nome do novo intervalo de endereços IPv4 secundário da sub-rede para servir como um intervalo de endereços IPv4 de pod extra para o cluster. Por exemplo,pod-range-2
.SECONDARY_RANGE_CIDR
: o CIDR a ser usado pelo novo intervalo de endereços IPv4 secundário da sub-rede. Por exemplo,10.2.204.0/22
.
É possível adicionar dois ou mais intervalos de endereços IPv4 secundários da sub-rede especificando
pares SECONDARY_RANGE_NAME
=SECONDARY_RANGE_CIDR
adicionais, separados por vírgulas, após a sinalização --add-secondary-ranges
.
Atribuir mais intervalos IPv4 de pods a um cluster
É possível atribuir mais intervalos de endereços IPv4 de pods no nível do cluster, aplicáveis aos novos nós criados em novos pools de nós criados no cluster. Para atribuir mais intervalos de endereços IPv4 de pods a um cluster, primeiro é preciso criar um novo intervalo de endereços IPv4 secundários da sub-rede.
A atribuição de mais intervalos de endereços IPv4 de pods a um cluster é aceita por:
- Clusters do Autopilot com a versão 1.26 ou mais recente do GKE
- Clusters padrão
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 outros intervalos IPv4 do pod do cluster, clique em Intervalos CIDR secundários do pod e selecione os nomes de um ou mais intervalos de endereços IPv4 secundários das sub-redes atuais na sub-rede do cluster. Se nenhum outro intervalo de endereços IPv4 secundários da sub-rede estiver disponível, primeiro crie um novo intervalo de endereços IPv4 secundários da sub-rede e repita essas etapas.
Clique em Salvar alterações.
gcloud
Atualize seu cluster usando a sinalização
--additional-pod-ipv4-ranges
:gcloud container clusters update CLUSTER_NAME \ --additional-pod-ipv4-ranges=SECONDARY_RANGE_NAME \ --location=COMPUTE_LOCATION
Substitua:
CLUSTER_NAME
: o nome do cluster.SECONDARY_RANGE_NAME
: o nome de um ou mais intervalos de endereços IPv4 secundários da sub-rede existentes na sub-rede do cluster, separados por vírgulas. Se nenhum intervalo de endereços IPv4 secundário da sub-rede estiver disponível, crie um novo intervalo de endereços IPv4 secundário da sub-rede primeiro.COMPUTE_LOCATION
: a região do Compute Engine para o cluster.
Pesquisar intervalos IPv4 do pod do cluster
Para procurar o intervalo de endereços IPv4 do pod padrão de um cluster e os intervalos de endereços IPv4 de pods adicionais atribuídos ao cluster, use o seguinte comando:
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION
Substitua:
CLUSTER_NAME
: o nome do cluster.COMPUTE_LOCATION
: a região do Compute Engine para o cluster.
A saída é semelhante à seguinte, que inclui IPAllocationPolicy do cluster:
ipAllocationPolicy:
clusterSecondaryRangeName: cluster-pods
clusterIpv4CidrBlock: 10.10.0.0/23
additionalPodRangesConfig:
podRangeNames:
- pod-range-1
- pod-range-2
em que:
clusterSecondaryRangeName
: o nome do intervalo de endereços IPv4 secundários da sub-rede usado como o intervalo de endereços IPv4 do pod padrão do cluster, definido quando ele foi criado.clusterIpv4CidrBlock
: o CIDR do intervalo de endereços IPv4 secundários da sub-rede para endereços IPv4 do pod, definido quando o cluster foi criado.additionalPodRangesConfig.podRangeNames
: uma lista de qualquer intervalo de endereços IPv4 secundário da sub-rede atribuída para endereços IPv4 do pod.
Intervalos de endereços IPv4 do pod personalizado do pool de nós
Para clusters padrão que executam o GKE 1.20.4-gke.500 ou posterior, é possível atribuir um intervalo IPv4 de pod personalizado a um novo pool de nós usando um dos seguintes métodos:
Intervalo de endereços IPv4 do pod personalizado do pool de nós gerenciado pelo GKE: com essa opção, você cria um novo pool de nós e fornece ao GKE as informações necessárias para criar um novo intervalo de endereços IPv4 secundário da sub-rede na sub-rede do cluster. Cada novo nó criado no novo pool de nós recebe um intervalo de endereços IP do alias para os endereços IPv4 do pod, e cada intervalo de endereços IP do alias vem do novo intervalo de endereços IPv4 secundário da sub-rede criado pelo GKE. Essa opção só poderá ser usada se o cluster e a rede VPC que contém a sub-rede do cluster estiverem no mesmo projeto.
Intervalo de endereços IPv4 do pod IPv4 do pool de nós gerenciado pelo usuário: com essa opção, você cria um novo pool de nós em que o GKE usa um intervalo de endereços IPv4 secundário da sub-rede. Cada novo nó criado no novo pool de nós recebe um intervalo de endereços IP do alias para os endereços IPv4 do pod, e cada intervalo de endereços IP do alias vem do intervalo de endereços IPv4 secundário da sub-rede que você instrui o GKE a usar. Se o cluster estiver localizado em um projeto de serviço de VPC compartilhada e a sub-rede do cluster estiver localizada na rede VPC compartilhada do projeto host, use essa opção.
O intervalo de endereços IPv4 do pod personalizado de um pool de nós substitui todos os intervalos de endereços IPv4 do pod definidos no nível do cluster, incluindo os intervalos de endereços IPv4 do pod adicionais atribuídos ao cluster. Os intervalos de endereços IPv4 de pods personalizados atribuídos a pools de nós também são chamados de CIDR com vários pods discontíguos.
Exemplo de intervalo de endereços IPv4 do pod personalizado do pool de nós
O diagrama a seguir mostra um cluster nativo de VPC com intervalos de endereços IPv4 do pod gerenciados pelo usuário:
No diagrama anterior:
- O número máximo de pods por nó para cada pool de nós no cluster foi
definido como
64
. Para acomodar no máximo 64 pods por nó, o GKE cria cada nó com um intervalo de endereços IP do alias/25
, fornecendo endereços IPv4 do pod128
por nó. - O intervalo de endereços IPv4 do pod padrão do cluster é um
/24
. Como cada nó requer um/25
para endereços IPv4 do pod, o intervalo de endereços IPv4 do pod padrão do cluster só oferece suporte a dois nós. - Para oferecer suporte a nós extras, um administrador de cluster criou um pool de nós adicional, mantendo o máximo de
64
pods por nó. O pool de nós adicional usa um intervalo de endereços IPv4 do pod/20
personalizado, que é compatível com mais 32 nós.
Intervalo de endereços IPv4 do pod personalizado do pool de nós gerenciado pelo GKE
Para criar um pool de nós com um intervalo de endereços IPv4 do pod personalizado gerenciado pelo GKE, use a CLI gcloud ou a API GKE da seguinte maneira:
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--create-pod-ipv4-range=name=SECONDARY_RANGE_NAME,range=CIDR_OR_NETMASK
Substitua:
POOL_NAME
: o nome do novo pool de nós.CLUSTER_NAME
: o nome do cluster.COMPUTE_LOCATION
: a região do Compute Engine para o cluster.SECONDARY_RANGE_NAME
: o nome do intervalo de endereços IPv4 secundário da sub-rede criado pelo GKE. Se você omitirname=SECONDARY_RANGE_NAME
, o GKE gerará o nome do novo intervalo de endereços IPv4 secundário da sub-rede automaticamente.CIDR_OR_NETMASK
: o intervalo de endereços IPv4 do pod expresso no formato CIDR (por exemplo,10.12.4.0/20
) ou como uma máscara de sub-rede (por exemplo,/20
).- .
- Se você fornecer apenas uma máscara de sub-rede, o GKE tentará criar um novo intervalo de endereços IPv4 secundário da sub-rede que não entre em conflito com os intervalos de endereços IPv4 da sub-rede atuais na rede VPC que contém a sub-rede do cluster.
- Se você omitir
range=CIDR_OR_NETMASK
, o GKE tentará criar um novo intervalo de endereços IPv4 secundário da sub-rede/14
que não entre em conflito com os intervalos de endereços IPv4 da sub-rede atuais na rede VPC que contém a sub-rede do cluster.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": true,
"podRange": "SECONDARY_RANGE_NAME",
"podIpv4CidrBlock": "CIDR_OR_NETMASK"
}
}
Substitua:
POOL_NAME
: o nome do novo pool de nós.SECONDARY_RANGE_NAME
: (opcional) o nome do intervalo de endereços IPv4 secundário da sub-rede criado pelo GKE. Se você usar""
como o valor paranetworkConfig.podRange
ou se omitir o parâmetropodRange
na solicitação, o GKE gerará o nome do novo intervalo de endereços IPv4 secundário da sub-rede automaticamente.CIDR_OR_NETMASK
: o intervalo de endereços IPv4 do pod expresso no formato CIDR (por exemplo,10.12.4.0/20
) ou como uma máscara de sub-rede (por exemplo,/20
).- .
- Se você fornecer apenas uma máscara de sub-rede, o GKE tentará criar um novo intervalo de endereços IPv4 secundário da sub-rede que não entre em conflito com os intervalos de endereços IPv4 da sub-rede atuais na rede VPC que contém a sub-rede do cluster.
- Se você usar
""
como o valor paranetworkConfig.podIpv4CidrBlock
, o GKE tentará criar um novo intervalo de endereços IPv4 secundário da sub-rede/14
que não entre em conflito com os intervalos de endereços IPv4 da sub-rede existentes na rede VPC que contém a sub-rede do cluster.
Intervalo de endereços IPv4 do pod personalizado do pool de nós gerenciado pelo usuário
Para criar um pool de nós com um intervalo de endereços IPv4 do pod personalizado gerenciado pelo usuário, use a CLI gcloud ou a API GKE da seguinte maneira:
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--pod-ipv4-range SECONDARY_RANGE_NAME
Substitua:
POOL_NAME
: o nome do novo pool de nós.CLUSTER_NAME
: o nome do cluster.COMPUTE_LOCATION
: a região do Compute Engine para o cluster.SECONDARY_RANGE_NAME
: o nome de um intervalo de endereços IPv4 secundário da sub-rede atual na sub-rede do cluster. Se necessário, crie um novo intervalo de endereços IPv4 secundário da sub-rede primeiro.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": false,
"podRange": "SECONDARY_RANGE_NAME"
}
}
Substitua:
POOL_NAME
: o nome do novo pool de nós.SECONDARY_RANGE_NAME
: o nome de um intervalo de endereços IPv4 secundário da sub-rede atual na sub-rede do cluster. Se necessário, crie um novo intervalo de endereços IPv4 secundário da sub-rede primeiro.
Procurar intervalos IPv4 do pod do pool de nós
Para procurar o intervalo de endereços IPv4 do pod de um pool de nós, use o seguinte comando:
gcloud container node-pools describe POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION
Substitua:
POOL_NAME
: o nome do pool de nós.CLUSTER_NAME
: o nome do cluster.COMPUTE_LOCATION
: a região do Compute Engine para o cluster.
A saída é semelhante à seguinte, que inclui o NodeNetworkConfig do pool de nós:
networkConfig:
podRange: podrange
podIpv4CidrBlock: 192.168.0.0/18
em que:
podRange
: o nome do intervalo de endereços IPv4 secundário da sub-rede para os endereços IPv4 do pod do pool de nós.podIpv4CidrBlock
: o CIDR do intervalo de endereços IPv4 secundário da sub-rede para os endereços IPv4 do pod do pool de nós.
Se o pool de nós estiver usando um intervalo de endereços IPv4 do pod personalizado, os valores podRange
e
podIpv4CidrBlock
serão diferentes do intervalo de endereços IPv4 do pod
padrão do cluster.
Próximas etapas
Depois de atribuir mais intervalos de endereços IPv4 do pod a um cluster ou
a um pool de nós personalizado de intervalos de endereços IPv4, o GKE vai atualizar
a regra de firewall da VPC gke-[cluster-name]-[cluster-hash]-all
criada automaticamente para que o intervalo de origem inclua todos os endereços IPv4 do pod.
Talvez também seja necessário:
Atualizar a configuração do agente de mascaramento de IP do cluster. O conjunto efetivo de CIDRs não mascarados precisa incluir todos os intervalos de endereços IPv4 do pod usados pelo cluster e respectivos pools de nós. Para mais informações, consulte Como verificar o status de
ip-masq-agent
e Como configurar e implantar oip-masq-agent
.Revise a configuração
NetworkPolicy
do cluster. Talvez seja necessário atualizar os atributosipBlock
que fazem referência a intervalos de endereços IPv4 de pods.Solucione problemas de conectividade usando os Registros de fluxo de VPC e a Geração de registros de regras de firewall.
A seguir
- Saiba mais sobre Como otimizar a alocação de endereços IP.