Criar e usar intervalos internos

Neste documento, descrevemos como criar, usar e excluir intervalos internos.

Os intervalos internos ajudam a gerenciar um espaço de endereço IP unificado em redes de nuvem privada virtual (VPC), permitindo que você aloque blocos de endereços IP internos e especifique como esses blocos podem ser usados.

Antes de começar

Funções exigidas

Para receber as permissões necessárias para trabalhar com intervalos internos, peça ao administrador para conceder a você o papel do IAM de Administrador da rede do Compute (roles/compute.networkAdmin) no seu projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Reservar intervalos internos

Especifique pelo menos duas coisas ao criar um intervalo interno: os endereços IP a serem alocados e a rede em que os endereços serão alocados. É possível criar um intervalo interno IPv4 ou IPv6 com um bloco CIDR específico ou fazer com que o Google Cloud aloque um bloco IPv4 automaticamente. Não é possível criar um intervalo interno IPv6 com um bloco de endereços alocado automaticamente.

Ao solicitar um bloco CIDR IPv4 alocado automaticamente, você fornece um tamanho de prefixo e um ou mais blocos CIDR IPv4 de destino opcionais. Se você não especificar um bloco CIDR de destino, Google Cloud usará os seguintes intervalos de destino padrão:

  • Para redes VPC de modo personalizado, os intervalos padrão são 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16.
  • Para redes VPC de modo automático, os intervalos padrão são 10.0.0.0/9, 172.16.0.0/12 e 192.168.0.0/16.

Google Cloud considera as alocações de endereços IP atuais e aloca ao intervalo interno um bloco CIDR livre do tamanho escolhido dentro dos blocos CIDR de destino. É possível refinar ainda mais essa alocação fornecendo uma lista opcional de blocos CIDR a serem excluídos.Google Cloud aloca um bloco de endereços IP ao intervalo interno que não se sobrepõe a nenhum bloco excluído. A lista de blocos excluídos não pode ser atualizada depois que você cria um intervalo interno.

Para controlar o método que o Google Cloud usa para selecionar automaticamente um bloco livre, especifique uma estratégia de alocação. Se você não especificar uma estratégia de alocação,o Google Cloudvai alocar aleatoriamente um intervalo de endereços IP livre nos blocos CIDR de destino (ou no intervalo padrão, se nenhum bloco CIDR de destino for especificado).

Com os intervalos internos de IPv6, é possível evitar a atribuição automática de endereços IP a novas sub-redes somente IPv6 ou de pilha dupla. Os intervalos internos de IPv6 precisam ter o tipo de uso EXTERNAL_TO_VPC e o tipo de peering FOR_SELF. É necessário incluir um bloco CIDR IPv6 específico, e o campo overlaps precisa estar vazio ou não especificado.

Para impedir que os usuários atualizem o bloco CIDR ou a configuração de sobreposição de um intervalo interno, crie um intervalo interno imutável. Intervalos internos imutáveis impedem mudanças nessas propriedades, mas você ainda pode atualizar a descrição. A imutabilidade não pode ser alterada depois que o intervalo interno é criado.

Por padrão,o Google Cloud bloqueia a criação de intervalos ou recursos internos se eles compartilharem endereços IP sobrepostos na mesma rede VPC. É possível configurar um intervalo interno de IPv4 para permitir a sobreposição com os intervalos de endereços de sub-redes atuais, rotas novas e atuais ou ambas. Não é possível criar recursos Google Cloud que usam endereços IP de um intervalo interno atual, a menos que você associe explicitamente o recurso ao intervalo interno (para sub-redes) ou configure a sobreposição (para rotas).

Console

  1. No console Google Cloud , acesse a página Intervalos internos.

    Acessar "Intervalos internos"

  2. Clique em Reservar intervalo interno.

  3. Insira um nome.

  4. Opcional: insira uma descrição.

  5. Selecione uma versão do IP.

    • Se você selecionar IPv4, faça o seguinte:

      1. Especifique se o intervalo interno é imutável.
      2. Selecione um método de reserva.

        • Se você selecionar Automático, faça o seguinte:

          1. Selecione um algoritmo de alocação.
          2. Selecione um tamanho de prefixo.
          3. Insira um intervalo de endereços IP de destino. É possível adicionar vários intervalos de destino.
          4. Opcional: clique em Adicionar um intervalo para excluir e insira um intervalo de endereços IP a ser excluído. É possível adicionar vários intervalos excluídos.

            OGoogle Cloud aloca um bloco de endereços IP ao intervalo interno que não se sobrepõe a nenhum intervalo excluído. Não é possível atualizar essa lista depois que o intervalo interno é criado.

        • Se você selecionar Quero especificar, insira um intervalo de IP na notação CIDR.

      3. Selecione uma rede.

      4. Selecione um tipo de peering.

      5. Selecione um tipo de uso.

      6. Opcional: na seção Sobreposições permitidas, especifique se o intervalo interno pode se sobrepor a sub-redes atuais, rotas novas e atuais ou ambas.

    • Se você selecionar IPv6, faça o seguinte:

      1. Especifique se o intervalo interno é imutável.
      2. Selecione Quero especificar e insira um bloco CIDR IPv6 ou IPv6 mapeado para IPv4.
      3. Selecione uma rede.
      4. Clique em Peering e selecione Para si mesmo.
      5. Clique em Uso e, em seguida, selecione Externo para VPC.
  6. Clique em Reservar.

gcloud

  • Para reservar um intervalo interno para um bloco CIDR IPv4 ou IPv6 específico, use o comando gcloud network-connectivity internal-ranges create.

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE
    

    Substitua:

    • RANGE_NAME: o nome do novo intervalo interno.
    • CIDR_RANGE: o bloco CIDR IPv4, IPv6 ou IPv6 mapeado para IPv4 a ser alocado ao novo intervalo interno.
      • Se você especificar um bloco IPv6, faça o seguinte:
        • Defina o tipo peering como FOR_SELF.
        • Defina o tipo usage como EXTERNAL_TO_VPC.
    • NETWORK_NAME: o nome da rede em que o intervalo interno será criado.
    • DESCRIPTION: uma descrição opcional do intervalo interno.
    • PEERING_TYPE: o tipo de peering do intervalo interno.

      As opções são FOR_SELF, FOR_PEER e NOT_SHARED. O padrão é FOR_SELF.

    • USAGE_TYPE: o tipo de uso do intervalo interno.

      As opções são FOR_VPC, EXTERNAL_TO_VPC e FOR_MIGRATION. O valor padrão é FOR_VPC.

  • Para reservar um intervalo interno de IPv4 com um bloco CIDR alocado automaticamente, use o seguinte comando:

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --network=NETWORK_NAME \
        --prefix-length=PREFIX_LENGTH \
        --target-cidr-range=TARGET_CIDR_RANGE \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --description="DESCRIPTION" \
        --allocation-strategy=ALLOCATION_STRATEGY
        [--first-available-ranges-lookup-size=FIRST_N_LOOKUP_SIZE]
    

    Substitua:

    • PREFIX_LENGTH: o comprimento do prefixo dos endereços IP alocados.
    • TARGET_CIDR_RANGE: o bloco CIDR de destino de onde um bloco de endereços IPv4 será alocado.

      • Para redes VPC de modo personalizado, os blocos CIDR padrão são 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16.
      • Para redes VPC de modo automático, os blocos CIDR padrão são 10.0.0.0/9, 172.16.0.0/12 e 192.168.0.0/16.

      É possível inserir vários blocos CIDR em uma lista separada por vírgulas.

    • ALLOCATION_STRATEGY: a estratégia de alocação que você quer usar para o bloco CIDR desse intervalo interno.

      As opções são RANDOM, FIRST_AVAILABLE, RANDOM_FIRST_N_AVAILABLE e FIRST_SMALLEST_FITTING. O padrão é RANDOM.

    • FIRST_N_LOOKUP_SIZE: para a estratégia de alocação RANDOM_FIRST_N_AVAILABLE, o número de blocos CIDR livres a serem encontrados antes de determinar um aleatoriamente.

      Inclua essa flag somente se você escolher a estratégia de alocação RANDOM_FIRST_N_AVAILABLE.

  • Se você quiser excluir intervalos de endereços IP ao reservar um intervalo IPv4 interno com um bloco CIDR alocado automaticamente, use o seguinte comando:

    gcloud alpha network-connectivity internal-ranges create RANGE_NAME \
        --network=NETWORK_NAME \
        --prefix-length=PREFIX_LENGTH \
        --target-cidr-range=TARGET_CIDR_RANGE \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --description="DESCRIPTION" \
        --exclude-cidr-ranges=EXCLUDED_RANGES
    

    Substitua EXCLUDED_RANGES por uma lista separada por vírgulas de um ou mais blocos CIDR IPv4 a serem excluídos. Google Cloud aloca um bloco de endereços IP para o intervalo interno que não se sobrepõe a nenhum bloco excluído. A lista não pode ser atualizada depois que o intervalo interno é criado.

  • Para reservar um intervalo interno de IPv4 com sobreposição, use o seguinte comando:

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --overlaps=OVERLAPS
    

    Substitua OVERLAPS pelo tipo de sobreposição a ser permitida. As opções são OVERLAP_EXISTING_SUBNET_RANGE e OVERLAP_ROUTE_RANGE. É possível incluir os dois valores em uma lista separada por vírgulas.

  • Para reservar um intervalo interno imutável, use o seguinte comando:

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --immutable
    

API

  • Para reservar um intervalo interno para um bloco CIDR IPv4 ou IPv6 específico, faça uma solicitação POST para o método projects.locations.internalRanges.create.

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE"
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto pai para o intervalo interno.
    • RANGE_NAME: o nome do intervalo interno
    • CIDR_RANGE: o bloco CIDR IPv4, IPv6 ou IPv6 mapeado para IPv4 a ser alocado para o intervalo interno
      • Se você especificar um bloco IPv6, faça o seguinte:
        • Defina o tipo peering como FOR_SELF.
        • Defina o tipo usage como EXTERNAL_TO_VPC.
    • NETWORK_NAME: o nome da rede em que o intervalo interno será criado.
    • DESCRIPTION: uma descrição opcional do novo intervalo interno.
    • PEERING_TYPE: o tipo de peering do intervalo interno.

      As opções são FOR_SELF, FOR_PEER e NOT_SHARED. O padrão é FOR_SELF.

    • USAGE_TYPE: o tipo de uso do intervalo interno.

      As opções são FOR_VPC, EXTERNAL_TO_VPC e FOR_MIGRATION. O valor padrão é FOR_VPC.

  • Para reservar um intervalo interno IPv4 com um bloco CIDR alocado automaticamente, faça a seguinte solicitação:

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "prefixLength": PREFIX_LENGTH,
      "targetCidrRange": "TARGET_CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "allocationOptions": {
        "allocationStrategy": "ALLOCATION_STRATEGY",
        ["firstAvailableRangesLookupSize": FIRST_N_LOOKUP_SIZE]
      }
    }
    

    Substitua:

    • PREFIX_LENGTH: o tamanho do prefixo CIDR para o bloco de endereços IP do intervalo.
    • TARGET_CIDR_RANGE: o bloco CIDR de destino de onde um bloco de endereços IPv4 será alocado.

      • Para redes VPC de modo personalizado, os blocos CIDR padrão são 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16.
      • Para redes VPC de modo automático, os blocos CIDR padrão são 10.0.0.0/9, 172.16.0.0/12 e 192.168.0.0/16.

      É possível especificar vários blocos CIDR em uma matriz JSON.

    • ALLOCATION_STRATEGY: a estratégia de alocação que você quer usar para o bloco CIDR desse intervalo interno.

      As opções são RANDOM, FIRST_AVAILABLE, RANDOM_FIRST_N_AVAILABLE e FIRST_SMALLEST_FITTING. O padrão é RANDOM.

    • FIRST_N_LOOKUP_SIZE: para a estratégia de alocação RANDOM_FIRST_N_AVAILABLE, o número de blocos CIDR livres a serem encontrados antes de determinar um aleatoriamente.

      Inclua esse campo apenas se você escolher a estratégia de alocação RANDOM_FIRST_N_AVAILABLE.

  • Se você quiser excluir intervalos de endereços IP ao reservar um intervalo interno IPv4 com um bloco CIDR alocado automaticamente, faça a seguinte solicitação:

    POST https://networkconnectivity.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "prefixLength": PREFIX_LENGTH,
      "targetCidrRange": "TARGET_CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "excludeCidrRanges": ["EXCLUDED_RANGE_1","EXCLUDED_RANGE_2"]
    }
    

    Substitua EXCLUDED_RANGE_1 e EXCLUDED_RANGE_2 por um ou mais blocos CIDR IPv4 a serem excluídos. Google Cloud aloca um bloco de endereços IP ao intervalo interno que não se sobrepõe a nenhum bloco excluído. A lista não pode ser atualizada depois que o intervalo interno é criado.

  • Para reservar um intervalo interno IPv4 com sobreposição, faça a seguinte solicitação:

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "overlaps": ["OVERLAPS"]
    }
    

    Substitua OVERLAPS pelo tipo de sobreposição permitida. As opções são OVERLAP_EXISTING_SUBNET_RANGE e OVERLAP_ROUTE_RANGE. É possível incluir os dois valores em uma matriz JSON.

  • Para reservar um intervalo interno imutável, faça a seguinte solicitação:

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "immutable": true
    }
    

Reservar intervalos internos de IPv4 para migração de sub-rede

É possível usar um intervalo interno para migrar um intervalo CIDR de uma sub-rede para outra. Para mais informações, consulte Migrar intervalos de sub-rede IPv4.

gcloud

Use o comando gcloud network-connectivity internal-ranges create.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --peering=FOR_SELF \
    --usage=FOR_MIGRATION \
    --migration-source=SOURCE_SUBNET \
    --migration-target=TARGET_SUBNET

Substitua:

  • RANGE_NAME: o nome do intervalo interno a ser criado.
  • CIDR_RANGE: o bloco CIDR IPv4 da sub-rede que você quer migrar
  • NETWORK_NAME: o nome da rede em que o intervalo interno será criado.
  • SOURCE_SUBNET: o URI da sub-rede de origem
  • TARGET_SUBNET: o URI da sub-rede de destino

API

Faça uma solicitação POST ao método projects.locations.internalRanges.create.

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "peering": "FOR_SELF",
  "usage": "FOR_MIGRATION",
  "migration": {
    "source": "SOURCE_SUBNET",
    "target": "TARGET_SUBNET"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto pai para o intervalo interno.
  • RANGE_NAME: o nome do novo intervalo interno
  • CIDR_RANGE: o bloco CIDR IPv4 da sub-rede que você quer migrar
  • NETWORK_NAME: o nome da rede em que o intervalo interno será criado.
  • SOURCE_SUBNET: o URI da sub-rede de origem
  • TARGET_SUBNET: o URI da sub-rede de destino

Criar sub-redes com intervalos internos de IPv4

É possível criar uma sub-rede somente IPv4 ou de pilha dupla e usar um intervalo interno para especificar o intervalo de endereços IPv4 internos principais da sub-rede. A sub-rede pode ser associada a todo o intervalo interno ou apenas a parte dele. Intervalos secundários para sub-redes também podem ser associados a intervalos internos.

Console

  1. Reserve um intervalo interno de IPv4 na rede em que você quer criar uma nova sub-rede. Defina o tipo de uso nesse intervalo interno como For VPC e o tipo de peering como For self.

  2. No console Google Cloud , acesse a página Redes VPC.

    Acessar redes VPC

  3. Clique no nome de uma rede VPC para mostrar a página Detalhes da rede VPC.

  4. Clique em Add subnet. Na caixa de diálogo exibida:

    1. Forneça um Nome.
    2. Selecione uma região.
    3. Marque a caixa de seleção Associar a um intervalo interno.
    4. Em Intervalo interno reservado, faça uma seleção.
    5. Opcional: para associar a sub-rede a parte do intervalo interno, insira um intervalo IPv4.
    6. Clique em Adicionar.

gcloud

  1. Reserve um intervalo interno de IPv4 na rede em que você quer criar uma nova sub-rede. Defina o tipo de uso nesse intervalo interno como FOR_VPC e o tipo de peering como FOR_SELF.
  2. Escolha uma destas opções:

    • Para criar uma sub-rede associada a um intervalo interno inteiro, use o comando gcloud compute networks subnets create.

      gcloud compute networks subnets create SUBNET_NAME \
          --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
          --network=NETWORK_NAME \
          --region=REGION
      

      Substitua:

      • SUBNET_NAME: o nome da sub-rede
      • PROJECT_ID: o ID do projeto em que a sub-rede será criada.
      • RANGE_NAME: o nome do intervalo interno a ser associado à sub-rede
      • NETWORK_NAME: o nome da rede em que a sub-rede será criada.
      • REGION: a região em que a sub-rede será criada.
    • Para criar uma sub-rede associada a parte de um intervalo interno, use o seguinte comando:

      gcloud compute networks subnets create SUBNET_NAME \
          --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
          --range=IP_RANGE \
          --network=NETWORK_NAME \
          --region=REGION
      

      Substitua IP_RANGE por um intervalo CIDR IPv4 que seja um subconjunto do intervalo interno.

Por exemplo, os comandos a seguir criam uma sub-rede associada apenas à parte 10.9.1.0/24 de um intervalo interno que reserva o bloco CIDR 10.9.0.0/16.

gcloud network-connectivity internal-ranges create reserved-range-one \
    --ip-cidr-range=10.9.0.0/16 \
    --network=vpc-one
gcloud compute networks subnets create subnet-one \
    --reserved-internal-range=networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-range-one \
    --range=10.9.1.0/24 \
    --network=vpc-one \
    --region=us-central1

API

  1. Reserve um intervalo interno de IPv4 na rede em que você quer criar uma nova sub-rede. Defina o tipo de uso nesse intervalo interno como FOR_VPC e o tipo de peering como FOR_SELF.
  2. Escolha uma destas opções:

    • Para criar uma sub-rede associada a um intervalo interno inteiro, faça uma solicitação POST ao método subnetworks.insert.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
      {
        "name" : "SUBNET_NAME",
        "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
        "network" : "NETWORK"
      }
      

      Substitua:

      • PROJECT_ID: o ID do projeto pai da nova sub-rede
      • REGION: a região em que a sub-rede será criada.
      • SUBNET_NAME: o nome da nova sub-rede
      • PROJECT_ID: o ID do projeto em que uma sub-rede será criada
      • RANGE_NAME: o nome do intervalo interno a ser usado para a nova sub-rede.
      • NETWORK: o nome da rede em que a sub-rede será criada.
    • Para criar uma sub-rede associada a parte de um intervalo interno, faça a seguinte solicitação:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
      {
        "name" : "SUBNET_NAME",
        "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
        "range" : "IP_RANGE",
        "network" : "NETWORK"
      }
      

      Substitua IP_RANGE por um intervalo CIDR IPv4 que seja um subconjunto do intervalo interno.

Por exemplo, as duas solicitações a seguir criam uma sub-rede associada apenas à parte 10.9.1.0/24 de um intervalo interno que contém o bloco CIDR 10.9.0.0/16.

POST https://networkconnectivity.googleapis.com/v1/projects/sample-project/locations/global/internalRanges?internalRangeId=reserved-for-subnet
{
  "targetCidrRange": "10.9.0.0/16",
  "network": "network-b"
}
POST https://compute.googleapis.com/compute/v1/projects/11223344/regions/us-central1/subnetworks
{
  "name" : "subnet-with-partial-range",
  "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-for-subnet",
  "range" : "10.9.1.0/24",
  "network" : "network-b"
}

Criar clusters do GKE com intervalos internos de IPv4

É possível usar intervalos internos de IPv4 para alocar endereços IP para clusters nativos de VPC do Google Kubernetes Engine (GKE).

gcloud

  1. Crie os seguintes intervalos internos de IPv4 usando o comando gcloud network-connectivity internal-ranges create.

    gcloud network-connectivity internal-ranges create gke-nodes-1 \
        --prefix-length=NODE_PREFIX_LENGTH \
        --network=NETWORK
    
    gcloud network-connectivity internal-ranges create gke-pods-1 \
        --prefix-length=POD_PREFIX_LENGTH \
        --network=NETWORK
    
    gcloud network-connectivity internal-ranges create gke-services-1 \
        --prefix-length=SERVICE_PREFIX_LENGTH \
        --network=NETWORK
    

    Substitua:

    • NODE_PREFIX_LENGTH: o comprimento do prefixo do intervalo interno associado aos nós do GKE.
    • POD_PREFIX_LENGTH: o comprimento do prefixo do intervalo interno associado aos pods do GKE.
    • SERVICE_PREFIX_LENGTH: o comprimento do prefixo do intervalo interno associado aos serviços do GKE.
    • NETWORK: o nome da rede
  2. Crie uma sub-rede com os intervalos internos criados na etapa anterior usando o comando gcloud compute networks subnets create.

    gcloud compute networks subnets create gke-subnet-1 \
        --network=NETWORK \
        --region=REGION \
        --reserved-internal-range="//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1" \
        --secondary-range-with-reserved-internal-range="pods=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1,services=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
    

    Substitua:

    • REGION: a região da sub-rede
    • PROJECT_ID: o ID do projeto
  3. Crie o cluster nativo de VPC usando o comando gcloud container clusters create.

    gcloud container clusters create CLUSTER_NAME \
        --network=NETWORK \
        --subnetwork=gke-subnet-1 \
        --zone=ZONE \
        --cluster-secondary-range-name=pods \
        --services-secondary-range-name=services \
        --enable-ip-alias
    

    Substitua ZONE pela zona do cluster.

API

  1. Crie os intervalos internos a seguir fazendo solicitações POST para o método projects.locations.internalRanges.create.

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-nodes-1
    {
      "network": "NETWORK",
      "prefixLength": NODE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-pods-1
    {
      "network": "NETWORK",
      "prefixLength": POD_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-services-1
    {
      "network": "NETWORK",
      "prefixLength": SERVICE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto
    • NETWORK: o nome da rede
    • NODE_PREFIX_LENGTH: o comprimento do prefixo do intervalo interno associado aos nós do GKE.
    • POD_PREFIX_LENGTH: o comprimento do prefixo do intervalo interno associado aos pods do GKE.
    • SERVICE_PREFIX_LENGTH: o comprimento do prefixo do intervalo interno associado aos serviços do GKE.
  2. Crie uma sub-rede com os intervalos internos criados na etapa anterior fazendo uma solicitação POST ao método subnetworks.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name": "gke-subnet-1",
      "network": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK",
      "privateIpGoogleAccess": false,
      "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1",
      "secondaryIpRanges": [
        {
          "rangeName": "pods",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1"
        },
        {
          "rangeName": "services",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
        }
      ]
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto
    • REGION: a região da sub-rede
    • NETWORK: a rede da sub-rede
  3. Crie o cluster nativo de VPC fazendo uma solicitação POST ao método clusters.create.

    POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/clusters
    {
      "cluster": {
        "ipAllocationPolicy": {
          "clusterSecondaryRangeName": "pods",
          "createSubnetwork": false,
          "servicesSecondaryRangeName": "services",
          "useIpAliases": true
        },
        "name": "CLUSTER_NAME",
        "network": "NETWORK",
        "nodePools": [
          {
            "config": {
              "oauthScopes": [
                "https://www.googleapis.com/auth/devstorage.read_only",
                "https://www.googleapis.com/auth/logging.write",
                "https://www.googleapis.com/auth/monitoring",
                "https://www.googleapis.com/auth/service.management.readonly",
                "https://www.googleapis.com/auth/servicecontrol",
                "https://www.googleapis.com/auth/trace.append"
              ]
            },
            "initialNodeCount": 3,
            "management": {
              "autoRepair": true,
              "autoUpgrade": true
            },
            "name": "default-pool",
            "upgradeSettings": {
              "maxSurge": 1
            }
          }
        ],
        "subnetwork": "gke-subnet-1"
      },
      "parent": "projects/PROJECT_ID/locations/ZONE"
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto
    • ZONE: a zona do cluster.
    • CLUSTER_NAME: o nome do novo cluster.
    • NETWORK: a rede do cluster.

Listar intervalos internos

É possível listar intervalos internos para visualizar todos eles no projeto atual ou em uma rede VPC específica. Para listar projetos em uma rede VPC, use a CLI do Google Cloud ou envie uma solicitação de API.

Console

gcloud

  • Para visualizar todos os intervalos internos no seu projeto atual, use o comando gcloud network-connectivity internal-ranges list.

    gcloud network-connectivity internal-ranges list
    
  • Para visualizar todos os intervalos internos em uma rede VPC, use o comando internal-ranges list e inclua um filtro.

    gcloud network-connectivity internal-ranges list \
        --filter=network:NETWORK_NAME \
        --project=PROJECT_ID
    

    Substitua:

    • NETWORK_NAME: o nome da rede VPC em que os intervalos internos serão listados.
    • PROJECT_ID é o ID do projeto que contém a rede VPC.

API

  • Para visualizar todos os intervalos internos em um projeto, faça uma solicitação GET para o método projects.locations.internalRanges.list.

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges
    

    Substitua PROJECT_ID pelo ID do projeto para visualizar os intervalos internos.

  • Para visualizar todos os intervalos internos em uma rede VPC, faça uma solicitação GET para o método projects.locations.internalRanges.list e inclua um filtro.

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?filter=network=\"https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME\"
    

    Substitua NETWORK_NAME pelo nome da rede VPC em que os intervalos internos serão listados.

Descrever intervalos internos

Descreva um intervalo interno para ver detalhes sobre o intervalo escolhido, incluindo quaisquer sub-redes associadas a ele.

Console

  1. No console Google Cloud , acesse a página Intervalos internos.

    Acessar "Intervalos internos"

  2. Clique no Nome do intervalo interno que você quer descrever.

gcloud

Use o comando gcloud network-connectivity internal-ranges describe.

gcloud network-connectivity internal-ranges describe RANGE_NAME

Substitua RANGE_NAME pelo nome do intervalo interno a ser descrito.

API

Faça uma solicitação GET ao método projects.locations.internalRanges.get.

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

Substitua:

  • PROJECT_ID: o ID do projeto pai para o intervalo interno
  • RANGE_NAME: o nome do intervalo interno a ser descrito

Atualizar intervalos internos

Se um intervalo interno for imutável, só será possível atualizar a descrição. Se um intervalo interno for mutável, você poderá expandir o bloco CIDR dele e atualizar a propriedade de sobreposição e a descrição.

Para expandir um intervalo interno, atualize o bloco CIDR dele ou diminua o tamanho do prefixo. O bloco CIDR atualizado precisa conter o bloco anterior.

Se você quiser restringir o intervalo alocado ou modificar outro elemento, exclua o intervalo interno e crie um novo.

Para atualizar a propriedade de sobreposição de um intervalo interno IPv4, envie uma solicitação de API ou use a Google Cloud CLI.

Console

  1. No console Google Cloud , acesse a página Intervalos internos.

    Acessar "Intervalos internos"

  2. Clique no nome do intervalo interno que você quer atualizar.

  3. Para expandir o bloco CIDR do intervalo, clique em Expandir intervalo e faça uma das seguintes ações:

    • Para intervalos internos IPv4, clique em Tamanho do prefixo e faça o seguinte:
      1. No campo Comprimento do prefixo, selecione um tamanho menor que o prefixo anterior.
      2. Clique em Expandir.
    • Para intervalos internos IPv4 ou IPv6, clique em Intervalo de IP e faça o seguinte:
      1. Insira um bloco CIDR IPv4, IPv6 ou IPv6 mapeado para IPv4. O novo bloco precisa conter o anterior.
      2. Clique em Expandir.
  4. Para atualizar a descrição do intervalo, faça o seguinte:

    1. Clique em Editar descrição.
    2. Digite uma nova descrição.
    3. Clique em Salvar.

gcloud

  • Para atualizar um intervalo interno, use o comando gcloud network-connectivity internal-ranges update. Omita as flags das propriedades que você não quer modificar.

    gcloud network-connectivity internal-ranges update RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --overlaps=OVERLAPS \
        --description=DESCRIPTION
    

    Substitua:

    • RANGE_NAME: o nome do intervalo interno
    • CIDR_RANGE: o bloco CIDR IPv4, IPv6 ou IPv6 mapeado para IPv4 expandido, que precisa conter o bloco anterior.
    • OVERLAPS: o tipo de sobreposição a ser permitida (somente intervalos IPv4).

      As opções são OVERLAP_EXISTING_SUBNET_RANGE e OVERLAP_ROUTE_RANGE. É possível incluir os dois valores em uma lista separada por vírgulas. Para desativar a sobreposição, inclua a flag, mas não especifique um valor (--overlaps=).

    • DESCRIPTION: a descrição atualizada

  • Para expandir um intervalo interno diminuindo o tamanho do prefixo, use o seguinte comando:

    gcloud network-connectivity internal-ranges update RANGE_NAME \
        --prefix-length=PREFIX_LENGTH
    

    Substitua PREFIX_LENGTH pelo comprimento do prefixo atualizado, que precisa ser menor que o anterior.

API

  • Para expandir um intervalo interno atualizando o intervalo CIDR, faça uma solicitação PATCH para o método projects.locations.internalRanges.patch.

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=ipCidrRange
    {
      "ipCidrRange": "CIDR_RANGE"
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto pai para o intervalo interno
    • RANGE_NAME: o nome do intervalo interno
    • CIDR_RANGE: o bloco CIDR IPv4, IPv6 ou IPv6 mapeado para IPv4 expandido, que precisa conter o bloco anterior.
  • Para expandir um intervalo interno diminuindo o tamanho do prefixo, faça a seguinte solicitação:

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=prefixLength
    {
      "prefixLength": PREFIX_LENGTH
    }
    

    Substitua PREFIX_LENGTH pelo comprimento atualizado do prefixo, que precisa ser menor que o comprimento anterior.

  • Para atualizar a propriedade de sobreposição de um intervalo interno IPv4, faça a seguinte solicitação:

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=overlaps
    {
      "overlaps": ["OVERLAPS"]
    }
    

    Substitua OVERLAPS pelo tipo de sobreposição a ser permitida. As opções são OVERLAP_EXISTING_SUBNET_RANGE e OVERLAP_ROUTE_RANGE. É possível incluir os dois valores em uma matriz JSON. Para desativar a sobreposição, inclua o campo, mas não especifique um valor ("overlaps": []).

  • Para atualizar a descrição de um intervalo interno, faça a seguinte solicitação:

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=description
    {
      "description": "DESCRIPTION"
    }
    

    Substitua DESCRIPTION pela descrição atualizada.

Excluir intervalos internos

É possível excluir um intervalo interno se ele não estiver associado a um recurso Google Cloud, como uma sub-rede. Para excluir um intervalo interno associado a um recurso Google Cloud , primeiro exclua o recurso associado.

Console

  1. No console Google Cloud , acesse a página Intervalos internos.

    Acessar "Intervalos internos"

  2. Clique no nome do intervalo interno que você quer excluir.

  3. Clique em Excluir.

  4. Para confirmar, clique em Excluir.

gcloud

Use o comando gcloud network-connectivity internal-ranges delete.

gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE

Substitua RANGE_TO_DELETE pelo nome do intervalo interno a ser excluído.

API

Faça uma solicitação DELETE ao método projects.locations.internalRanges.delete.

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

Substitua:

  • PROJECT_ID: o ID do projeto pai para o intervalo interno.
  • RANGE_NAME: o nome do intervalo interno