Migrar uma sub-rede de serviço do peering para o Private Service Connect

Este documento descreve como os produtores de serviços podem migrar os serviços baseados em peering para o Private Service Connect e preservar o endereço IP usado para acessar o serviço. Esse processo de migração exige que todos os recursos conectados a uma determinada sub-rede sejam migrados ao mesmo tempo.

O processo de migração é iniciado pelo produtor do serviço, mas envolve tarefas que são concluídas pelo produtor e pelo consumidor. Os serviços gerenciados pelo Google podem usar um agente de serviço para realizar tarefas em nome do consumidor. A migração envolve um tempo de inatividade e uma mudança no preço para o produtor e o consumidor.

Cada produtor de serviços determina se e quando vai migrar para o Private Service Connect. Para saber se um produtor de serviços está migrando do peering de rede VPC para o Private Service Connect, consulte a documentação do serviço ou entre em contato com o produtor.

Antes de começar

Implantar o serviço usando o Private Service Connect

Crie uma nova rede VPC, implante recursos de serviço na rede e publique o serviço pelo Private Service Connect.

Ao criar o balanceador de carga para o serviço, use um endereço IP diferente do que foi usado anteriormente pelo balanceador de carga. O endereço IP original será necessário mais tarde para criar o endpoint.

Ao publicar um serviço, você cria um anexo de serviço. O URI do anexo de serviço também é necessário para criar o endpoint.

Desligue o serviço baseado em peering

Para encerrar o serviço baseado em peering, crie um intervalo interno para reservar o intervalo de endereços IP do serviço antes de excluir a sub-rede do produtor.

Criar um intervalo interno

Antes de excluir a sub-rede do produtor, crie um intervalo interno para impedir que o intervalo de endereços IP da sub-rede seja reutilizado por outras sub-redes na rede do produtor ou do consumidor.

Para mais informações sobre esse intervalo interno, consulte Intervalos internos para migração.

gcloud

Use o comando internal-ranges create.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --project=PRODUCER_PROJECT_ID \
    --ip-cidr-range=CIDR_RANGE \
    --network=PRODUCER_NETWORK_NAME \
    --usage=FOR_MIGRATION \
    --migration-source=PRODUCER_SUBNET_URI \
    --migration-target=CONSUMER_SUBNET_URI

Substitua:

  • RANGE_NAME: o nome do novo intervalo interno.
  • PRODUCER_PROJECT_ID: o ID do projeto do produtor.
  • CIDR_RANGE: o intervalo CIDR que será alocado para o novo intervalo interno.
  • PRODUCER_NETWORK_NAME: o nome da rede em que o intervalo interno será criado.
  • PRODUCER_SUBNET_URI: o URI da sub-rede do produtor que contém o balanceador de carga do serviço.
  • CONSUMER_SUBNET_URI: o URI da sub-rede de consumidor pretendida. Essa sub-rede não existe no momento em que você executa esse comando.

Excluir a sub-rede do produtor de peering

É necessário excluir todos os recursos na sub-rede do produtor antes de excluir a sub-rede, por exemplo, instâncias de máquina virtual (VM), regras de encaminhamento, grupos de instâncias, verificações de integridade e endereços IP reservados. Depois de excluir os recursos, você pode excluir a sub-rede.

Criar recursos de consumidor

Trabalhe com o consumidor do serviço para criar os seguintes recursos na rede VPC. Os recursos podem ser criados manualmente ou, para serviços gerenciados pelo Google, podem ser automatizados por um agente de serviço.

Criar uma sub-rede de migração de pares

Crie uma sub-rede de migração de peer na rede VPC do consumidor para fornecer o endereço IP do endpoint do Private Service Connect. A sub-rede tem a finalidade PEER_MIGRATION, que impede que ela seja usada para recursos diferentes dos endpoints do Private Service Connect.

Para mais informações, consulte Subredes de migração de peers.

gcloud

Use o comando networks subnets create.

gcloud compute networks subnets create CONSUMER_SUBNET \
    --purpose=PEER_MIGRATION \
    --project=CONSUMER_PROJECT \
    --network=CONSUMER_NETWORK \
    --range=CIDR_RANGE \
    --region=REGION

Substitua:

  • CONSUMER_SUBNET: o nome da sub-rede do consumidor
  • CONSUMER_PROJECT: o ID do projeto do consumidor
  • CONSUMER_NETWORK: o nome da rede do consumidor
  • CIDR_RANGE: o intervalo CIDR a ser alocado para a nova sub-rede. Esse intervalo precisa corresponder ao intervalo CIDR do intervalo interno.
  • REGION: a região em que a sub-rede será criada

Criar um endpoint do Private Service Connect

Crie um endpoint do Private Service Connect na sub-rede de migração de peer do consumidor. O consumidor precisa do URI do anexo de serviço para criar o endpoint.

gcloud

  1. Reserve um endereço IP interno para o endpoint.

    Use o comando addresses create.

    gcloud compute addresses create ENDPOINT_ADDRESS_NAME \
        --project=CONSUMER_PROJECT \
        --region=REGION \
        --address=ENDPOINT_ADDRESS \
        --subnet=CONSUMER_SUBNET
    

    Substitua:

    • ENDPOINT_ADDRESS_NAME: um nome para o recurso de endereço IP.
    • CONSUMER_PROJECT: o ID do projeto do consumidor
    • REGION: a região em que o endereço IP será criado.
    • ENDPOINT_ADDRESS: o endereço IP a ser atribuído ao recurso de endereço IP. Esse endereço precisa ser o mesmo que foi usado no balanceador de carga do serviço.
    • CONSUMER_SUBNET: o nome da sub-rede do consumidor
  2. Crie o endpoint.

    Use o comando forwarding-rules create.

    gcloud compute forwarding-rules create ENDPOINT \
        --region=REGION \
        --network=CONSUMER_NETWORK \
        --address=ENDPOINT_ADDRESS \
        --target-service-attachment=SERVICE_ATTACHMENT_URI
    

    Substitua:

    • ENDPOINT: um nome para o endpoint
    • REGION: a região em que o endpoint será criado
    • CONSUMER_NETWORK: o nome da rede do consumidor
    • ENDPOINT_ADDRESS: o endereço IP reservado a ser atribuído ao endpoint. É possível especificar o endereço IP diretamente ou usar o nome do recurso de endereço IP.
    • SERVICE_ATTACHMENT_URI: o URI do anexo de serviço

Excluir o intervalo interno do produtor

Depois que a sub-rede de migração do consumidor é criada, o intervalo interno não é mais necessário e pode ser excluído.

gcloud

Use o comando internal-ranges delete.

gcloud network-connectivity internal-ranges delete RANGE_NAME \
    --project=PRODUCER_PROJECT_ID

Substitua:

  • RANGE_NAME: o nome do intervalo interno
  • PRODUCER_PROJECT_ID: o ID do projeto do produtor.

Validar se o endpoint funciona

Peça ao consumidor para confirmar se ele pode se conectar ao serviço pelo endpoint.

Se o endpoint não estiver funcionando e a solução de problemas não resolver o problema, você poderá reverter a migração.

Finalizar a migração

Se o endpoint estiver funcionando conforme o esperado, será possível finalizar a migração atualizando a sub-rede de migração de peer do consumidor para uma sub-rede normal.

Atualizar a sub-rede de migração de pares do consumidor

Atualizar a sub-rede de migração de pares do consumidor para uma sub-rede normal permite que o consumidor use a sub-rede para qualquer tipo de recurso.

gcloud

Use o comando networks subnets create.

gcloud compute networks subnets update CONSUMER_SUBNET \
    --purpose=PRIVATE \
    --region=REGION \
    --project=CONSUMER_PROJECT

Substitua:

  • CONSUMER_SUBNET: o nome da sub-rede do consumidor
  • REGION: a região da sub-rede do consumidor
  • CONSUMER_PROJECT: o ID do projeto do consumidor

Excluir as conexões de peering

Se a conexão de peering não for mais necessária, exclua as configurações de peering para o consumidor e o produtor.

Reverter a migração

Só é possível reverter a migração se a sub-rede do consumidor ainda não foi atualizada para uma sub-rede normal. Se você reverter, o serviço será disponibilizado pelo peering de rede VPC.

  1. Se ainda existir, exclua o intervalo interno no projeto do produtor.
  2. Crie um intervalo interno no projeto do consumidor. Ao reverter, a origem da migração é a sub-rede de consumidor, e o destino da migração é a sub-rede de produtor.

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --project=CONSUMER_PROJECT \
        --ip-cidr-range=CIDR_RANGE \
        --network=CONSUMER_NETWORK \
        --usage=FOR_MIGRATION \
        --migration-source=CONSUMER_SUBNET_URI \
        --migration-target=PRODUCER_SUBNET_URI
    
  3. Exclua o endpoint do Private Service Connect do consumidor.

  4. Exclua o recurso de endereço IP do consumidor.

  5. Recrie a sub-rede do produtor usando o mesmo nome e intervalo CIDR. Defina o propósito da sub-rede como PRIVATE.

  6. Recrie os recursos necessários para fornecer o serviço na sub-rede do produtor.

  7. O consumidor valida que pode acessar o serviço pela conexão de peering.