Adicionar intervalos de endereços IPv4 de pods

Esta página mostra como configurar intervalos de endereços IPv4 de pods adicionais para um cluster nativo de VPC e como especificar intervalos de endereços IPv4 de pods personalizados para pools de nós de um cluster nativo de VPC.

Os intervalos de endereços IPv4 dos pods em clusters nativos da VPC provêm sempre de intervalos de endereços IPv4 secundários da sub-rede. Quando cria um novo cluster, atribui ao cluster um intervalo de endereços IPv4 de pods predefinido.

  • Para clusters do Autopilot e Standard, pode configurar um cluster para usar intervalos de endereços IPv4 de pods adicionais. O GKE usa estes intervalos de endereços IPv4 de pods adicionais para endereços IPv4 de pods em nós criados em futuros conjuntos de nós.
  • Para clusters padrão, pode criar conjuntos de nós que usam cada um um intervalo de endereços IPv4 secundário de sub-rede personalizado para os respetivos endereços IPv4 de pods.

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.
  • Certifique-se de que tem a função de gestão de identidade e de acesso (IAM) de administrador de rede de computação para o projeto que contém a sub-rede do cluster. Isto é necessário para criar novos intervalos de endereços IPv4 secundários de sub-rede. Quando usa a VPC partilhada, tem de coordenar com o administrador de rede do projeto anfitrião da VPC partilhada.
  • Certifique-se de que o seu cluster do GKE é um cluster nativo de VPC. Os clusters baseados em rotas não suportam intervalos de endereços IPv4 de pods adicionais nem intervalos de endereços IPv4 de pods personalizados de conjuntos de nós.
  • Reveja a secção Passos de seguimento.

Crie um novo intervalo de endereços IPv4 secundários de sub-rede

Para criar um novo intervalo de endereços IPv4 secundários de sub-rede, use a Trusted Cloud consola ou a Google Cloud CLI. Cada sub-rede suporta até 30 intervalos de endereços IPv4 secundários. Para mais informações, consulte o artigo Edite intervalos IPv4 secundários na documentação da VPC.

Consola

  1. Aceda à página Redes VPC na Trusted Cloud consola.

    Aceda a redes de VPC

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

  3. Na lista Sub-redes, selecione a sub-rede pretendida.

  4. Clique em Edit.

  5. Clique em Adicionar intervalo de IP.

  6. Em Nome do intervalo da sub-rede, introduza o nome do novo intervalo de endereços IPv4 secundário. Por exemplo, pod-range-2.

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

  8. Clique em Guardar.

gcloud

gcloud compute networks subnets update SUBNET_NAME \
    --region=REGION \
    --add-secondary-ranges=SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR

Substitua o seguinte:

  • SUBNET_NAME: O nome da sub-rede do cluster (a mesma sub-rede atribuída ao cluster quando foi criado).
  • REGION: a região da sub-rede do cluster. A região da sub-rede do cluster é a região que contém o cluster do GKE.
  • SECONDARY_RANGE_NAME: O nome do novo intervalo de endereços IPv4 secundário da sub-rede a usar como um intervalo de endereços IPv4 de pods adicional para o cluster. Por exemplo, pod-range-2.
  • SECONDARY_RANGE_CIDR: O CIDR a ser usado pelo novo intervalo de endereços IPv4 secundários da sub-rede. Por exemplo, 10.2.204.0/22.

Pode adicionar dois ou mais novos intervalos de endereços IPv4 secundários de sub-rede especificando pares SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR adicionais, separados por vírgulas, após a flag --add-secondary-ranges.

Atribua intervalos IPv4 de pods adicionais a um cluster

Pode atribuir intervalos de endereços IPv4 de pods adicionais ao nível do cluster, aplicáveis a novos nós criados em novos node pools que criar no cluster. Para atribuir intervalos de endereços IPv4 de pods adicionais a um cluster, primeiro tem de criar um intervalo de endereços IPv4 secundários de sub-rede.

A atribuição de intervalos de endereços IPv4 de pods adicionais a um cluster é suportada por:

  • Clusters do Autopilot com a versão 1.26 e posterior do GKE
  • Clusters padrão

Consola

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Junto ao cluster que quer editar, clique em Ações e, de seguida, clique em Editar.

  3. Na secção Rede, junto a Intervalos IPv4 de Cluster Pod (adicionais), clique em Editar.

  4. Na caixa de diálogo Editar intervalos IPv4 de pods de cluster adicionais, clique em Intervalos CIDR secundários de pods e selecione os nomes de um ou mais intervalos de endereços IPv4 secundários de sub-redes existentes na sub-rede do cluster. Se não estiverem disponíveis intervalos de endereços IPv4 secundários de sub-rede adicionais, primeiro crie um novo intervalo de endereços IPv4 secundários de sub-rede e, em seguida, repita estes passos.

  5. Clique em Guardar alterações.

gcloud

  1. Atualize o cluster com a flag --additional-pod-ipv4-ranges:

    gcloud container clusters update CLUSTER_NAME \
        --additional-pod-ipv4-ranges=SECONDARY_RANGE_NAME \
        --location=COMPUTE_LOCATION
    

    Substitua o seguinte:

Procure intervalos de IPv4 de pods de cluster

Para procurar o intervalo de endereços IPv4 do pod predefinido de um cluster e quaisquer intervalos de endereços IPv4 do pod adicionais que tenham sido atribuídos ao cluster, use o seguinte comando:

gcloud container clusters describe CLUSTER_NAME \
    --location=COMPUTE_LOCATION

Substitua o seguinte:

A saída é semelhante à seguinte, que inclui a IPAllocationPolicy do cluster:

ipAllocationPolicy:
  clusterSecondaryRangeName: cluster-pods
  clusterIpv4CidrBlock: 10.10.0.0/23
  additionalPodRangesConfig:
    podRangeNames:
      - pod-range-1
      - pod-range-2

where:

  • clusterSecondaryRangeName: O nome do intervalo de endereços IPv4 secundário da sub-rede usado como o intervalo de endereços IPv4 do pod predefinido do cluster, definido quando o cluster foi criado.
  • clusterIpv4CidrBlock: O CIDR do intervalo de endereços IPv4 secundários da sub-rede para endereços IPv4 de pods, definido quando o cluster foi criado.
  • additionalPodRangesConfig.podRangeNames: Uma lista de qualquer intervalo de endereços IPv4 secundários de sub-rede adicionais atribuídos para endereços IPv4 de pods.

Intervalos de endereços IPv4 de pods personalizados do node pool

Para clusters padrão que executam o GKE 1.20.4-gke.500 ou posterior, pode atribuir um intervalo IPv4 de pods personalizado a um novo conjunto de nós através de um dos seguintes métodos:

  • Intervalo de endereços IPv4 de pods personalizado do conjunto de nós gerido pelo GKE: com esta opção, cria um novo conjunto 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 no cluster. A cada novo nó criado no novo conjunto de nós é atribuído um intervalo de endereços IP alias para os respetivos endereços IPv4 de pods, e cada intervalo de endereços IP alias provém do novo intervalo de endereços IPv4 secundários da sub-rede que o GKE cria. Esta opção só pode 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 de pods personalizados do conjunto de nós gerido pelo utilizador: com esta opção, cria um novo conjunto de nós onde o GKE usa um intervalo de endereços IPv4 secundário de sub-rede existente. A cada novo nó criado no novo conjunto de nós é atribuído um intervalo de endereços IP de alias para os respetivos endereços IPv4 de pods, e cada intervalo de endereços IP de alias provém do intervalo de endereços IPv4 secundário da sub-rede que indica ao GKE para usar. Se o cluster estiver localizado num projeto de serviço de VPC partilhada e a sub-rede do cluster estiver localizada na rede de VPC partilhada do projeto anfitrião, tem de usar esta opção.

O intervalo de endereços IPv4 de pods personalizado de um conjunto de nós substitui todos os intervalos de endereços IPv4 de pods definidos ao nível do cluster, incluindo intervalos de endereços IPv4 de pods 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 denominados CIDR de vários pods não contíguos.

Exemplo de intervalo de endereços IPv4 de pods personalizado do conjunto de nós

O diagrama seguinte mostra um cluster nativo da VPC com intervalos de endereços IPv4 de pods geridos pelo utilizador:

Adicionar um conjunto de nós a um cluster com um intervalo de endereços IP de pods secundários esgotado através de CIDR de vários pods não contíguos
Diagrama: exemplo de intervalo de endereços IPv4 de pods personalizado do conjunto de nós

No diagrama anterior:

  • O número máximo de pods por nó para cada conjunto de nós no cluster foi definido como 64. Para acomodar um máximo de 64 agrupamentos por nó, o GKE cria cada nó com um intervalo de endereços IP de alias, fornecendo 128 endereços IPv4 de agrupamentos por nó./25
  • O intervalo de endereços IPv4 do pod predefinido do cluster é /24. Uma vez que cada nó requer um /25 para endereços IPv4 de pods, o intervalo de endereços IPv4 de pods predefinido do cluster só suporta dois nós.
  • Para suportar nós adicionais, um administrador do cluster criou um conjunto de nós adicional, mantendo o número máximo de pods por nó de 64. O conjunto de nós adicional usa um intervalo de endereços IPv4 de pods /20 personalizado, que suporta 32 nós adicionais.

Intervalo de endereços IPv4 de pods personalizados do node pool gerido pelo GKE

Para criar um conjunto de nós com um intervalo de endereços IPv4 de pods personalizado gerido pelo GKE, use a CLI gcloud ou a API GKE da seguinte forma:

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 o seguinte:

  • POOL_NAME: o nome do novo node pool.
  • CLUSTER_NAME: o nome do cluster.
  • COMPUTE_LOCATION: a localização do Compute Engine para o cluster.
  • SECONDARY_RANGE_NAME: O nome do intervalo de endereços IPv4 secundários da sub-rede que o GKE cria. Se omitir name=SECONDARY_RANGE_NAME, o GKE gera automaticamente o nome do novo intervalo de endereços IPv4 secundário.
  • CIDR_OR_NETMASK: O intervalo de endereços IPv4 do agrupamento expresso no formato CIDR (por exemplo, 10.12.4.0/20) ou como uma máscara de sub-rede (por exemplo, /20).
    • Se fornecer apenas uma máscara de sub-rede, o GKE tenta criar um intervalo de endereços IPv4 secundário que não entre em conflito com os intervalos de endereços IPv4 de sub-rede existentes na rede VPC que contém a sub-rede do cluster.
    • Se omitir range=CIDR_OR_NETMASK, o GKE tenta 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.

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": true,
    "podRange": "SECONDARY_RANGE_NAME",
    "podIpv4CidrBlock": "CIDR_OR_NETMASK"
    }
}

Substitua o seguinte:

  • POOL_NAME: o nome do novo node pool.
  • SECONDARY_RANGE_NAME: opcional: o nome do intervalo de endereços IPv4 secundário da sub-rede que o GKE cria. Se usar "" como o valor de networkConfig.podRange ou omitir o parâmetro podRange no pedido, o GKE gera automaticamente o nome do novo intervalo de endereços IPv4 secundários da sub-rede.
  • CIDR_OR_NETMASK: O intervalo de endereços IPv4 do agrupamento expresso no formato CIDR (por exemplo, 10.12.4.0/20) ou como uma máscara de sub-rede (por exemplo, /20).
    • Se fornecer apenas uma máscara de sub-rede, o GKE tenta criar um intervalo de endereços IPv4 secundário que não entre em conflito com os intervalos de endereços IPv4 de sub-rede existentes na rede VPC que contém a sub-rede do cluster.
    • Se usar "" como valor para networkConfig.podIpv4CidrBlock, o GKE tenta criar um novo intervalo de endereços IPv4 secundário de sub-rede que não entre em conflito com os intervalos de endereços IPv4 de sub-rede existentes na rede VPC que contém a sub-rede do cluster./14

Intervalo de endereços IPv4 de pods personalizado do node pool gerido pelo utilizador

Para criar um conjunto de nós com um intervalo de endereços IPv4 de pods personalizado gerido pelo utilizador, use a CLI gcloud ou a API GKE da seguinte forma:

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --pod-ipv4-range SECONDARY_RANGE_NAME

Substitua o seguinte:

API

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

Substitua o seguinte:

Procure intervalos de IPv4 de pods de node pools

Para pesquisar o intervalo de endereços IPv4 do pod de um conjunto de nós, use o seguinte comando:

gcloud container node-pools describe POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=COMPUTE_LOCATION

Substitua o seguinte:

O resultado é semelhante ao seguinte, que inclui o NodeNetworkConfig do conjunto de nós:

  networkConfig:
    podRange: podrange
    podIpv4CidrBlock: 192.168.0.0/18

where:

  • podRange: O nome do intervalo de endereços IPv4 secundários da sub-rede para os endereços IPv4 dos pods do conjunto de nós.
  • podIpv4CidrBlock: O CIDR do intervalo de endereços IPv4 secundários da sub-rede para os endereços IPv4 dos pods do conjunto de nós.

Se o conjunto de nós estiver a usar um intervalo de endereços IPv4 de pods personalizado, os valores podRange e podIpv4CidrBlock são diferentes do intervalo de endereços IPv4 de pods predefinido do cluster.

Passos de seguimento

Depois de atribuir intervalos de endereços IPv4 de pods adicionais a um cluster ou configurar intervalos de endereços IPv4 de pods personalizados do conjunto de nós, o GKE atualiza a regra de firewall da VPC gke-[cluster-name]-[cluster-hash]-all criada automaticamente para que o respetivo intervalo de origem inclua todos os endereços IPv4 de pods.

Também pode ter de:

O que se segue?