Migrar una subred de servicio de una conexión de peering a Private Service Connect

En este documento se describe cómo pueden los productores de servicios migrar sus servicios basados en el peering a Private Service Connect y conservar la dirección IP que se usa para acceder al servicio. Este proceso de migración requiere que todos los recursos conectados a una subred determinada se migren al mismo tiempo.

El proceso de migración lo inicia el productor del servicio, pero implica tareas que completan tanto el productor como el consumidor. Los servicios gestionados por Google pueden usar un agente de servicio para realizar tareas en nombre del consumidor. La migración implica un tiempo de inactividad y un cambio en los precios tanto para el productor como para el consumidor.

Cada productor de servicios determina si va a migrar a Private Service Connect y cuándo. Para saber si un productor de servicios está migrando del emparejamiento entre redes VPC a Private Service Connect, consulta la documentación del servicio o ponte en contacto con el productor de servicios.

Antes de empezar

Desplegar el servicio mediante Private Service Connect

Crea una red de VPC, implementa recursos de servicio en la red y publica el servicio a través de Private Service Connect.

Cuando crees el balanceador de carga del servicio, usa una dirección IP diferente a la que usaba anteriormente el balanceador de carga. La dirección IP original se necesitará más adelante para crear el endpoint.

Cuando publicas un servicio, creas un archivo adjunto de servicio. El URI de adjunto de servicio también se necesita más adelante para crear el endpoint.

Cerrar el servicio basado en el peer

Para cerrar el servicio basado en el peering, debes crear un intervalo interno para reservar el intervalo de direcciones IP del servicio antes de eliminar la subred del productor.

Crear un intervalo interno

Antes de eliminar la subred del productor, crea un intervalo interno para evitar que otras subredes de la red del productor o del consumidor reutilicen el intervalo de direcciones IP de la subred.

Para obtener más información sobre este intervalo interno, consulta Intervalos internos para la migración.

gcloud

Usa el 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

Haz los cambios siguientes:

  • RANGE_NAME: el nombre del nuevo intervalo interno.
  • PRODUCER_PROJECT_ID: el ID del proyecto del productor.
  • CIDR_RANGE: el intervalo CIDR que se asignará al nuevo intervalo interno.
  • PRODUCER_NETWORK_NAME: nombre de la red en la que se va a crear el intervalo interno.
  • PRODUCER_SUBNET_URI: el URI de la subred del productor que contiene el balanceador de carga del servicio.
  • CONSUMER_SUBNET_URI: el URI de la subred de consumidor prevista. Esta subred no existe en el momento en que ejecutas este comando.

Eliminar la subred del productor del intercambio de tráfico entre redes

Debes eliminar todos los recursos de la subred del productor para poder eliminar la subred. Por ejemplo, instancias de máquinas virtuales (VMs), reglas de reenvío, grupos de instancias, comprobaciones de estado y direcciones IP reservadas. Una vez que hayas eliminado los recursos, podrás eliminar la subred.

Crear recursos para consumidores

Colabora con el consumidor del servicio para crear los siguientes recursos en su red VPC. Los recursos se pueden crear manualmente o, en el caso de los servicios gestionados por Google, se pueden automatizar mediante un agente de servicio.

Crear una subred de migración entre iguales

Crea una subred de migración de emparejamiento en la red de VPC del consumidor para proporcionar la dirección IP del endpoint de Private Service Connect. La subred tiene el objetivo PEER_MIGRATION, que impide que se use para recursos que no sean puntos finales de Private Service Connect.

Para obtener más información, consulta Subredes de migración entre iguales.

Consola

  1. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  2. Haz clic en el nombre de una red de VPC para ver su página Detalles de la red de VPC.

  3. Haz clic en la pestaña Subredes.

  4. Haz clic en Añadir subred. En el panel que aparece, haz lo siguiente:

    1. Proporciona un nombre.
    2. Selecciona una región.
    3. En la sección Propósito, selecciona Migración entre iguales.
    4. En Tipo de pila de IP, selecciona IPv4 (pila única).
    5. Introduce el intervalo de direcciones IPv4 que se asignará a la nueva subred. Este intervalo debe coincidir con el intervalo CIDR del intervalo interno.

      Si seleccionas un intervalo que no es una dirección RFC 1918, confirma que el intervalo no entra en conflicto con una configuración ya creada. Para obtener más información, consulta la sección sobre los intervalos de subredes IPv4.

  5. Haz clic en Añadir.

gcloud

Usa el 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

Haz los cambios siguientes:

  • CONSUMER_SUBNET: el nombre de la subred del consumidor
  • CONSUMER_PROJECT: el ID del proyecto de consumidor
  • CONSUMER_NETWORK: el nombre de la red de consumidores
  • CIDR_RANGE: el intervalo CIDR que se asignará a la nueva subred. Este intervalo debe coincidir con el intervalo CIDR del intervalo interno.
  • REGION: la región en la que se va a crear la subred

Crear un endpoint de Private Service Connect

Crea un endpoint de Private Service Connect en la subred de migración del mismo nivel del consumidor. El consumidor necesita el URI del adjunto de servicio para crear el endpoint.

Consola

  1. En la Google Cloud consola, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Puntos finales conectados.

  3. Haz clic en Conectar punto final.

  4. En Destino, selecciona Servicio publicado.

  5. En Servicio de destino, introduce el URI de la vinculación de servicio al que quieras conectarte.

    El URI de la vinculación de servicio tiene este formato: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

  6. En Endpoint name (Nombre del endpoint), escribe el nombre que quieras usar para el endpoint.

  7. En Red, selecciona la red de VPC del consumidor del endpoint.

  8. En Subred, selecciona la subred de migración entre iguales de consumidor.

  9. Para reservar una dirección IP para el endpoint, siga estos pasos:

    1. Haga clic en el menú desplegable Dirección IP y seleccione Crear dirección IP.
    2. Introduce un nombre y una descripción opcional para la dirección IP.
    3. Haz clic en Dirección IP estática y selecciona Seleccionar.
    4. Introduce la dirección IP personalizada que quieras reservar. Esta dirección IP debe ser la misma que se usó en el balanceador de carga del servicio.
    5. Haz clic en Reservar.
  10. Haz clic en Añadir endpoint.

gcloud

  1. Reserva una dirección IP interna para el endpoint.

    Usa el comando addresses create.

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

    Haz los cambios siguientes:

    • ENDPOINT_ADDRESS_NAME: nombre del recurso de dirección IP.
    • CONSUMER_PROJECT: el ID del proyecto de consumidor
    • REGION: la región en la que se va a crear la dirección IP
    • ENDPOINT_ADDRESS: la dirección IP que se va a asignar al recurso de dirección IP. Esta dirección debe ser la misma que se usó en el balanceador de carga del servicio.
    • CONSUMER_SUBNET: el nombre de la subred de migración entre iguales del consumidor
  2. Crea el endpoint.

    Usa el comando forwarding-rules create.

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

    Haz los cambios siguientes:

    • ENDPOINT: nombre del endpoint.
    • REGION: la región en la que se creará el endpoint
    • CONSUMER_NETWORK: el nombre de la red de consumidores
    • ENDPOINT_ADDRESS: la dirección IP reservada que se asignará al endpoint. Puedes especificar la dirección IP directamente o usar el nombre del recurso de dirección IP.
    • SERVICE_ATTACHMENT_URI: el URI del archivo adjunto de servicio

Eliminar el intervalo interno del productor

Una vez creada la subred de migración de consumidores, ya no se necesita el intervalo interno y se puede eliminar.

gcloud

Usa el comando internal-ranges delete.

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

Haz los cambios siguientes:

  • RANGE_NAME: el nombre del intervalo interno
  • PRODUCER_PROJECT_ID: el ID del proyecto del productor

Validar que el endpoint funciona

Pide al consumidor que confirme que puede conectarse al servicio a través del endpoint.

Si el endpoint no funciona y los pasos para solucionar el problema no lo resuelven, puedes revertir la migración.

Finalizar la migración

Si el endpoint funciona correctamente, puedes finalizar la migración actualizando la subred de migración entre iguales del consumidor a una subred normal.

Actualizar la subred de migración entre iguales del consumidor

Si actualizas la subred de migración entre iguales del consumidor a una subred normal, el consumidor podrá usar la subred para cualquier tipo de recurso.

Consola

  1. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  2. Haz clic en el nombre de una red de VPC para ver su página Detalles de la red de VPC.

  3. Haz clic en la pestaña Subredes.

  4. Haz clic en el nombre de la subred que quieras actualizar.

  5. Haz clic en Editar.

  6. En la sección Propósito, selecciona Privado.

  7. Haz clic en Guardar.

gcloud

Usa el comando networks subnets create.

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

Haz los cambios siguientes:

  • CONSUMER_SUBNET: el nombre de la subred del consumidor
  • REGION: la región de la subred del consumidor
  • CONSUMER_PROJECT: el ID del proyecto de consumidor

Eliminar las conexiones de intercambio de tráfico entre redes

Si ya no necesitas la conexión de peering, elimina las configuraciones de peering tanto del consumidor como del productor.

Restaurar la migración

Solo puedes revertir la migración si la subred de consumidor aún no se ha actualizado a una subred normal. Si reviertes la actualización, el servicio estará disponible a través del emparejamiento entre redes de VPC.

  1. Si sigue existiendo, elimina el intervalo interno del proyecto del productor.
  2. Crea un intervalo interno en el proyecto del consumidor. Al revertir, la fuente de migración es la subred del consumidor y el destino de migración es la subred del productor.

    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. Elimina el endpoint de Private Service Connect del consumidor.

  4. Elimina el recurso de dirección IP del consumidor.

  5. Vuelve a crear la subred del productor con el mismo nombre y el mismo intervalo CIDR. Asigna el valor PRIVATE al propósito de la subred.

  6. Vuelve a crear los recursos necesarios para proporcionar el servicio en la subred del productor.

  7. El consumidor valida que puede acceder al servicio a través de la conexión de interconexión.