Como adicionar intervalos de endereços IPv4 de pods


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.

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

  1. Acesse a página Redes VPC no Console do Google Cloud.

    Acessar redes VPC

  2. Na lista Redes VPC, selecione a rede que você quer expandir.

  3. Na lista Sub-redes, selecione a sub-rede que você quer.

  4. Clique em Editar.

  5. Clique em Adicionar intervalo de IP.

  6. 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.

  7. Em Intervalo de IP secundário, digite o intervalo de endereços IPv4 no formato CIDR. Por exemplo, 10.2.204.0/22.

  8. 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

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Ao lado do cluster que você quer editar, clique em Ações e, depois, em Editar.

  3. Na seção Rede, ao lado de Intervalos IPv4 do pod de cluster (adicionais), clique em Editar.

  4. 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.

  5. Clique em Salvar alterações.

gcloud

  1. 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:

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:

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:

Como adicionar um pool de nós a um cluster com um intervalo de endereços IP de pod secundário esgotado usando o CIDR de vários pods descontínuos
Diagrama: exemplo de intervalo de endereços IPv4 do pod personalizado do pool de nós

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 pod 128 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ê omitir name=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 para networkConfig.podRange ou se omitir o parâmetro podRange 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 para networkConfig.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:

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": false,
    "podRange": "SECONDARY_RANGE_NAME"
    }
}

Substitua:

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:

A seguir