Salida de VPC directa con una red de VPC compartida

Puedes habilitar tu servicio o trabajo de Cloud Run para enviar tráfico a una red de VPC compartida mediante la salida directa de VPC sin necesidad de usar el conector de Acceso a VPC sin servidores.

En esta página, se describe cómo configurar los permisos de IAM de Cloud Run para usar la subred de la red de VPC compartida y, luego, colocar tu servicio o trabajo en la subred compartida.

Antes de comenzar

Cuando uses la salida de VPC directa, asegúrate de que tu subred tenga al menos cientos de direcciones IP disponibles. Si la cantidad total de instancias en todos tus servicios de Cloud Run supera los 100, recomendamos tener al menos 4 veces (4X) la cantidad total disponible.

Limitaciones

Las siguientes limitaciones se aplican tanto a los servicios como a los trabajos de Cloud Run:

  • Cloud Run admite una capacidad de procesamiento de hasta 1 Gbps por instancia individual. Si se supera esta cantidad, se limita el rendimiento.
  • Una cuota de uso de Cloud Run limita la cantidad máxima de instancias que puedes configurar para usar la salida de VPC directa. La cantidad máxima se configura por revisión o ejecución de trabajos de Cloud Run. Para aumentar los límites predeterminados, consulta cómo aumentar las cuotas. Puedes verificar tu cuota con la consola de Google Cloud.

  • Los servicios y trabajos de Cloud Run pueden experimentar interrupciones de conexión durante los eventos de mantenimiento de la infraestructura de red. Te recomendamos que uses bibliotecas cliente que puedan manejar restablecimientos ocasionales de la conexión.
Las siguientes limitaciones se aplican solo a los trabajos y no a los servicios de Cloud Run:
  • La salida de VPC directa para los trabajos de Cloud Run solo está disponible en vista previa.
  • Para garantizar ejecuciones de trabajos adecuadas, solo usa la salida de VPC directa para trabajos que no requieran más de 8 instancias simultáneas y asegúrate de reservar un mínimo de 1,024 direcciones IP.

Los siguientes elementos no son compatibles con la salida de VPC directa:

  • Los registros de flujo de VPC no proporcionan el nombre del servicio o la revisión de Cloud Run.
  • Los registros de flujo de VPC no se informan desde recursos que no son de VM, como Cloud Run o máquinas locales.
  • Registro de reglas de firewall
  • Duplicación de paquetes
  • Network Intelligence Center
  • Tráfico IPv6
  • NAT privada
  • Usar etiquetas de red en las reglas de firewall de entrada aplicadas al recurso de destino.
  • Usar la identidad del servicio como la cuenta de servicio de origen en las reglas de firewall de entrada aplicadas al recurso de destino.
  • Las reglas de firewall no pueden usar etiquetas de Resource Manager adjuntas a las cargas de trabajo de Cloud Run.
  • Los trabajos de Cloud Run que se ejecutan durante más de 1 hora pueden experimentar interrupciones de conexión. Esto puede ocurrir durante los eventos de mantenimiento que migran el trabajo de una máquina a otra. El contenedor recibe una señal SIGTSTP 10 segundos antes del evento y una señal SIGCONT después del evento. Después de que el contenedor reciba la señal SIGCONT, vuelve a intentar la conexión.

Configura los permisos de IAM

Antes de que Cloud Run en un proyecto de servicio de VPC compartida pueda acceder a una red de VPC compartida, primero debes asegurarte de que el agente de servicio de Cloud Run tenga suficientes permisos para usar la subred.

  1. Para acceder a la red de VPC compartida, otorga permisos suficientes al agente de servicio de Cloud Run mediante la adición de uno de los siguientes roles:

    • Usuario de la red de Compute (compute.networkUser) en el proyecto host de la VPC compartida.

      Por ejemplo, ejecuta el siguiente comando:

      gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
      --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \
      --role "roles/compute.networkUser"

      Reemplaza lo siguiente:

      • HOST_PROJECT_ID: es el ID del proyecto host de la VPC compartida.
      • SERVICE_PROJECT_NUMBER: es el número de proyecto de servicio de VPC compartida en el que implementas tu servicio o trabajo de Cloud Run.
    • Visualizador de la red de Compute (compute.networkViewer) en el proyecto host de VPC compartida y el rol Usuario de la red de Compute (compute.networkUser) en la subred de VPC compartida.

      Por ejemplo, para otorgar el rol de visualizador de red de Compute en la subred, ejecuta el siguiente comando:

      gcloud compute networks subnets add-iam-policy-binding SUBNET_NAME \
        --region REGION \
        --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \
        --role "roles/compute.networkUser" \
        --project HOST_PROJECT_ID

      Reemplaza lo siguiente:

      • SUBNET_NAME: Es el nombre de recurso completamente calificado de la subred en la que deseas ejecutar tus servicios de Cloud Run.
      • REGION: es la región del servicio de Cloud Run, que debe coincidir con la región de la subred.
      • SERVICE_PROJECT_NUMBER: es el número de proyecto de servicio de VPC compartida en el que implementas tu servicio o trabajo de Cloud Run.
      • HOST_PROJECT_ID: es el ID del proyecto host de la VPC compartida.
  2. El agente de servicio de Cloud Run requiere el rol de agente de servicio de Cloud Run en tu proyecto de Cloud Run. Para verificar que el rol no se haya quitado de forma manual, ejecuta el siguiente comando:

    gcloud projects get-iam-policy SERVICE_PROJECT_ID \
      --flatten bindings \
      --filter "bindings.role:roles/run.serviceAgent"

    Reemplaza SERVICE_PROJECT_ID por el ID de tu servicio o trabajo de Cloud Run.

Para obtener un control más detallado, puedes asegurarte de que el agente de servicio de Cloud Run tenga los siguientes permisos:

  • compute.networks.get en el proyecto host de la VPC compartida
  • compute.subnetworks.get en el proyecto host o en la subred específica
  • compute.subnetworks.use en el proyecto host o en la subred específica
  • compute.addresses.get en el proyecto de servicio de la VPC compartida
  • compute.addresses.list en el proyecto de servicio de la VPC compartida
  • compute.addresses.createInternal en el proyecto de servicio de la VPC compartida
  • compute.addresses.deleteInternal en el proyecto de servicio de la VPC compartida

Asignación de direcciones IP

Para colocar tu servicio o trabajo de Cloud Run en una red de VPC, debes especificar una red y una subred. Cloud Run asigna direcciones IP desde tu subred.

Las direcciones IP son efímeras, por lo que no debes crear políticas basadas en IPs individuales. Si necesitas crear una política basada en IPs, como en reglas de firewall, debes usar el rango de direcciones IP de toda la subred.

Para cambiar la red o subred que usa tu servicio o trabajo, implementa una revisión de servicio nueva o ejecuta una tarea de trabajo nueva que use los valores de red y subred nuevos.

Escalamiento vertical

Para habilitar un escalamiento vertical rápido en caso de aumento de tráfico, Cloud Run asigna direcciones IP antes de que sean necesarias.

En cualquier momento, es probable que haya más direcciones IP asignadas que la cantidad de instancias que existen. Para garantizar que Cloud Run pueda obtener suficientes direcciones IP, asegúrate de que tu subred tenga al menos cientos de direcciones IP disponibles. Si la cantidad total de instancias de la subred en todos los servicios y trabajos de Cloud Run supera las 100, recomendamos tener al menos 4 veces (4X) la cantidad total disponible. Si Cloud Run no puede asignar más direcciones IP, no puede iniciar más instancias de servicio ni tareas de trabajo hasta que haya más direcciones IP disponibles. Si el espacio de dirección IP es limitado, consulta Rangos de IP compatibles para obtener más opciones. Para obtener eficiencia de la asignación de IP y facilidad de administración, coloca varios servicios o trabajos en la misma subred.

Reducción de escala

Incluso después de que todos los servicios o trabajos reduzcan la escala verticalmente a cero, Cloud Run reserva algunas direcciones IP de la subred durante un máximo de 20 minutos en caso de que los servicios o trabajos deban volver a escalar de forma vertical con rapidez. Cada instancia requiere una dirección IP, pero Cloud Run reserva una máscara de subred /28 mínima al principio. Una vez que agotas las 16 instancias, Cloud Run crea una subred nueva.

Para borrar la subred, primero debes borrar o volver a implementar los servicios o trabajos de Cloud Run para dejar de usar la subred y, luego, esperar entre 1 y 2 horas.

Rangos de IP compatibles

Cloud Run admite los siguientes rangos IPv4 para tu subred:

  • RFC 1918 (recomendado)
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
  • RFC 6598
    • 100.64.0.0/10
  • Clase E (no se recomienda con opciones de configuración locales)
    • 240.0.0.0/4

Implementa un servicio

La salida de VPC directa permite que tu servicio de Cloud Run envíe tráfico a una red de VPC compartida sin un conector de Acceso a VPC sin servidores. Los costos de red reducen su escala a cero al igual que el servicio. También puedes agregar etiquetas de red directamente en las revisiones de servicio de Cloud Run para obtener una seguridad de red más detallada, como aplicar reglas de firewall de VPC.

Puedes configurar la salida de VPC directa con un servicio a través de la consola de Google Cloud, Google Cloud CLI o YAML.

Console

  1. En la consola de Google Cloud, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor y selecciona Servicio si quieres configurar un servicio nuevo. Si quieres configurar y, luego, implementar un servicio existente, haz clic en el servicio y, luego, en Implementar y editar una nueva revisión.

  3. Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedor, volúmenes, herramientas de redes y seguridad para expandir la página de configuración del servicio.

  4. Haz clic en la pestaña Herramientas de redes.

  5. Haz clic en Conéctate a una VPC para el tráfico saliente.

  6. Haz clic en Enviar tráfico directamente a una VPC.

  7. Selecciona Redes compartidas conmigo.

  8. En el campo Red, selecciona la red de VPC compartida a la que deseas enviar tráfico.

  9. En el campo Subred, selecciona la subred desde la que tu servicio recibe direcciones IP.

  10. Opcional: Ingresa los nombres de las etiquetas de red que quieres asociar con tu servicio o tus servicios. Las etiquetas de red se especifican a nivel de revisión. Cada revisión del servicio puede tener diferentes etiquetas de red, como network-tag-2.

  11. En Enrutamiento del tráfico, selecciona una de las siguientes opciones:

    • Enruta solo las solicitudes a IPs privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red de VPC compartida.
    • Enruta todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC compartida.
  12. Haz clic en Crear o Implementar.

  13. Para verificar que tu servicio esté en la red de VPC compartida, haz clic en el servicio y, luego, en la pestaña Herramientas de redes. Las redes y las subredes se detallan en la tarjeta VPC.

Ahora puedes enviar solicitudes desde tu servicio de Cloud Run a cualquier recurso en la red de VPC compartida, como lo permiten las reglas de firewall.

gcloud

A fin de colocar tu servicio en la subred compartida, especifica los nombres de recursos completamente calificados para la red de VPC compartida y la subred mediante la ejecución del siguiente comando:

gcloud run deploy SERVICE_NAME \
  --image IMAGE_URL \
  --network projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK \
  --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
  --network-tags NETWORK_TAG_NAMES \
  --vpc-egress=EGRESS_SETTING \
  --region REGION \
  --max-instances MAX
  

Reemplaza lo siguiente:

  • SERVICE_NAME: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: la URL de la imagen del servicio.
  • HOST_PROJECT_ID: el ID de tu proyecto de VPC compartida.
  • VPC_NETWORK: Es el nombre de recurso completamente calificado de tu red de VPC compartida.
  • REGION: es la región del servicio de Cloud Run, que debe coincidir con la región de la subred.
  • SUBNET_NAME: Es el nombre de recurso completamente calificado de tu subred.
  • Opcional: NETWORK_TAG_NAMES por los nombres separados por comas de las etiquetas de red que deseas asociar con un servicio. Para los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión del servicio puede tener etiquetas de red diferentes, como network-tag-2.
  • EGRESS_SETTING por un valor de configuración de salida:
    • all-traffic: Envía todo el tráfico saliente por medio de la red de VPC compartida.
    • private-ranges-only: Envía solo tráfico a direcciones internas a través de la red de VPC compartida.
  • MAX es la cantidad máxima de instancias que se usarán para la red de VPC compartida. El número máximo de instancias permitidas para los servicios es 100.

Para obtener más detalles y ver los argumentos opcionales, consulta la referencia de gcloud.

YAML

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Actualiza los siguientes atributos:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE_NAME
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
        spec:
          containers:
          - image: IMAGE

    Reemplaza lo siguiente:

    • SERVICE_NAME por el nombre del servicio de Cloud Run. Los nombres de servicios deben tener 49 caracteres o menos, y deben ser únicos por región y proyecto.
    • REGION por la región del servicio de Cloud Run, que debe coincidir con la región de la subred.
    • NETWORK por el nombre de recurso completamente calificado de tu red de VPC compartida.
    • SUBNET_NAME por el nombre de recurso completamente calificado de tu subred.
    • Opcional: NETWORK_TAG_NAMES por los nombres de las etiquetas de red que deseas asociar con un servicio. Para los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión del servicio puede tener diferentes etiquetas de red, como network-tag-2.
    • EGRESS_SETTING por un valor de configuración de salida:
      • all-traffic: Envía todo el tráfico saliente por medio de la red de VPC compartida.
      • private-ranges-only: Envía solo tráfico a direcciones internas a través de la red de VPC compartida.
    • IMAGE por la URL de la imagen de contenedor de servicio.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

  1. Agrega lo siguiente a tu archivo main.tf:

    /**
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    # Example configuration of a Cloud Run service with direct VPC
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "cloudrun-service"
      location = "us-central1"
    
      deletion_protection = false # set to "true" in production
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
        vpc_access {
          network_interfaces {
            network    = "default"
            subnetwork = "default"
            tags       = ["tag1", "tag2", "tag3"]
          }
        }
      }
    }
    

De manera opcional, haz que tu servicio sea público si deseas permitir el acceso sin autenticación.

Crea un trabajo

La salida de VPC directa permite que tu trabajo de Cloud Run envíe tráfico a una red de VPC compartida sin un conector de Acceso a VPC sin servidores. También puedes agregar etiquetas de red directamente en los trabajos de Cloud Run para obtener una seguridad de red más detallada, como aplicar reglas de firewall de VPC.

Puedes configurar la salida de VPC directa con un trabajo a través de la consola de Google Cloud, Google Cloud CLI o YAML.

Console

  1. En la consola de Google Cloud, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Si quieres configurar un nuevo trabajo, haz clic en Implementar contenedor y selecciona Trabajo para completar el formulario inicial Crear trabajo según sea necesario. Si quieres configurar un trabajo existente, haz clic en la pestaña Trabajos, selecciona un trabajo y, luego, haz clic en Editar.

  3. Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir la página de propiedades del trabajo.

  4. Haz clic en la pestaña Conexiones.

  5. Haz clic en Conéctate a una VPC para el tráfico saliente.

  6. Haz clic en Enviar tráfico directamente a una VPC.

  7. Selecciona Redes compartidas conmigo.

  8. En el campo Red, selecciona la red de VPC compartida a la que deseas enviar tráfico.

  9. En el campo Subred, selecciona la subred desde la que tu trabajo recibe direcciones IP.

  10. Opcional: Ingresa los nombres de las etiquetas de red que quieres asociar a un trabajo. Para los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de trabajo puede tener diferentes etiquetas de red, como network-tag-2.

  11. En Enrutamiento del tráfico, selecciona una de las siguientes opciones:

    • Enruta solo las solicitudes a IPs privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red de VPC compartida.
    • Enruta todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC compartida.
  12. Haz clic en Crear o Actualizar.

  13. Para verificar que tu trabajo esté en la red de VPC compartida, haz clic en el trabajo y, luego, en la pestaña Configuración. Las redes y las subredes se detallan en la tarjeta VPC.

Ahora puedes ejecutar el trabajo de Cloud Run y enviar solicitudes desde el trabajo a cualquier recurso en la red de VPC compartida, como lo permiten las reglas de firewall.

gcloud

A fin de colocar tu trabajo en la subred compartida, especifica los nombres de recursos completamente calificados para la red de VPC compartida y la subred mediante la ejecución del siguiente comando:

gcloud run jobs create JOB_NAME \
  --image IMAGE_URL \
  --network projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK \
  --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
  --network-tags NETWORK_TAG_NAMES \
  --vpc-egress=EGRESS_SETTING \
  --region REGION \
  

Reemplaza lo siguiente:

  • JOB_NAME por el nombre del trabajo de Cloud Run.
  • IMAGE_URL: por la URL de la imagen del trabajo.
  • HOST_PROJECT_ID: el ID del proyecto host de la VPC compartida.
  • VPC_NETWORK: Es el nombre de recurso completamente calificado de tu red de VPC compartida.
  • REGION: la región del trabajo de Cloud Run, que debe coincidir con la región de la subred.
  • SUBNET_NAME: Es el nombre de recurso completamente calificado de tu subred.
  • Opcional: NETWORK_TAG_NAMES por los nombres separados por comas de las etiquetas de red que deseas asociar con un trabajo. Cada ejecución de trabajo puede tener etiquetas de red diferentes, como network-tag-2.
  • EGRESS_SETTING por un valor de configuración de salida:
    • all-traffic: Envía todo el tráfico saliente por medio de la red de VPC compartida.
    • private-ranges-only: Envía solo tráfico a direcciones internas a través de la red de VPC compartida.

Para obtener más detalles y ver los argumentos opcionales, consulta la referencia de gcloud.

YAML

  1. Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Actualiza los siguientes atributos:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
      annotations:
        run.googleapis.com/launch-stage: BETA
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
        spec:
          containers:
          - image: IMAGE

    Reemplaza lo siguiente:

    • JOB_NAME por el nombre del trabajo de Cloud Run. Los nombres de trabajos deben tener 49 caracteres o menos, y deben ser únicos por región y proyecto.
    • REGION por la región del trabajo de Cloud Run, que debe coincidir con la región de la subred.
    • NETWORK por el nombre de recurso completamente calificado de tu red de VPC compartida.
    • SUBNET por el nombre de recurso completamente calificado de tu subred.
    • Opcional: NETWORK_TAG_NAMES por los nombres de las etiquetas de red que deseas asociar con un trabajo. Para los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de trabajo puede tener diferentes etiquetas de red, como network-tag-2.
    • EGRESS_SETTING por un valor de configuración de salida:
      • all-traffic: Envía todo el tráfico saliente por medio de la red de VPC compartida.
      • private-ranges-only: Envía solo tráfico a direcciones internas a través de la red de VPC compartida.
    • IMAGE por la URL de la imagen de contenedor.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run jobs replace job.yaml

Desconecta un servicio

Console

  • Para quitar el servicio de la red de VPC compartida, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página Cloud Run:

      Ir a Cloud Run

    2. Haz clic en el servicio que deseas quitar y, luego, en Editar e implementar nueva revisión.

    3. Haz clic en la pestaña Herramientas de redes.

    4. Desmarca Conéctate a una VPC para el tráfico saliente.

    5. Haz clic en Implementar.

    6. Para verificar que tu servicio ya no esté en tu red de VPC compartida, haz clic en la pestaña Herramientas de redes. La red y la subred ya no se enumeran en la tarjeta VPC.

  • Para quitar solo las etiquetas de red y, al mismo tiempo, mantener el servicio conectado a la red de VPC compartida, haz lo siguiente:

    1. Haz clic en el servicio que contiene las etiquetas de red que deseas quitar y, luego, en Implementar y editar una nueva revisión.

    2. Haz clic en la pestaña Herramientas de redes.

    3. Borra los nombres de las etiquetas de red que ya no deseas asociar con tu servicio.

    4. Haz clic en Implementar.

gcloud

  • Para quitar tu servicio de la red de VPC compartida, ejecuta el siguiente comando:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network
  • Para quitar solo las etiquetas de red y, al mismo tiempo, mantener el servicio conectado a la red de VPC compartida, ejecuta el siguiente comando:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network-tags

    Reemplaza lo siguiente:

    • SERVICE_NAME: el nombre de tu servicio de Cloud Run.
    • REGION: la región del servicio de Cloud Run.

YAML

  • Para quitar el servicio de la red de VPC compartida, haz lo siguiente:

    1. Descarga la configuración YAML del servicio:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Quita el siguiente contenido de tu archivo service.yaml:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      Dónde

      • NETWORK: Es el nombre de recurso completamente calificado de tu red de VPC compartida.
      • SUBNET: Es el nombre de recurso completamente calificado de tu subred.
      • Opcional: NETWORK_TAG_NAMES: son los nombres de las etiquetas de red si las asociaste con un servicio.
    3. Actualiza el servicio con el siguiente comando:

      gcloud run services replace service.yaml
  • Para quitar solo las etiquetas de red y, al mismo tiempo, mantener el servicio conectado a la red de VPC compartida, haz lo siguiente:

    1. Descarga la configuración YAML del servicio:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Quita las variables tags del contenido de tu archivo service.yaml y deja las variables network y subnetwork en su lugar, como se muestra en el siguiente ejemplo:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'

      Reemplaza lo siguiente:

      • NETWORK: Es el nombre de recurso completamente calificado de tu red de VPC compartida.
      • SUBNET: Es el nombre de recurso completamente calificado de tu subred.
    3. Actualiza el servicio con el siguiente comando:

      gcloud run services replace service.yaml

Desconecta un trabajo

Console

  • Para quitar el trabajo de la red de VPC compartida, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página Cloud Run:

      Ir a Cloud Run

    2. Haz clic en el trabajo que deseas quitar y, luego, en Editar e implementar nueva revisión.

    3. Haz clic en la pestaña Configuración.

    4. Desmarca Conéctate a una VPC para el tráfico saliente.

    5. Haz clic en Actualizar.

    6. Para verificar que tu trabajo ya no esté en tu red de VPC compartida, haz clic en la pestaña Configuración. La red y la subred ya no se enumeran en la tarjeta VPC.

  • Para quitar solo las etiquetas de red y, al mismo tiempo, mantener el trabajo conectado a la red de VPC compartida, haz lo siguiente:

    1. Haz clic en el trabajo que contiene las etiquetas de red que deseas quitar y, luego, en Implementar y editar una nueva revisión.

    2. Haz clic en la pestaña Conexiones.

    3. Borra los nombres de las etiquetas de red que ya no deseas asociar con tu trabajo.

    4. Haz clic en Actualizar.

gcloud

  • Para quitar tu trabajo de la red de VPC compartida, ejecuta el siguiente comando:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network
      
  • Para quitar solo las etiquetas de red y, al mismo tiempo, mantener el trabajo conectado a la red de VPC compartida, ejecuta el siguiente comando:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network-tags
      

    Reemplaza lo siguiente:

    • JOB_NAME por el nombre del trabajo de Cloud Run.
    • REGION: la región del trabajo de Cloud Run.

YAML

  • Para quitar el trabajo de la red de VPC compartida, haz lo siguiente:

    1. Descarga la configuración YAML del trabajo:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Quita el siguiente contenido de tu archivo job.yaml:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      Dónde

      • NETWORK: Es el nombre de recurso completamente calificado de tu red de VPC compartida.
      • SUBNET: Es el nombre de recurso completamente calificado de tu subred.
      • Opcional: NETWORK_TAG_NAMES: son los nombres de las etiquetas de red si las asociaste con un trabajo.
    3. Actualiza el trabajo con el siguiente comando:

      gcloud run jobs replace job.yaml
  • Para quitar solo las etiquetas de red y, al mismo tiempo, mantener el trabajo conectado a la red de VPC compartida, haz lo siguiente:

    1. Descarga la configuración YAML del trabajo:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Quita el siguiente contenido de tu archivo job.yaml:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      Dónde

      • NETWORK: Es el nombre de recurso completamente calificado de tu red de VPC compartida.
      • SUBNET: Es el nombre de recurso completamente calificado de tu subred.
      • Opcional: NETWORK_TAG_NAMES: son los nombres de las etiquetas de red si las asociaste con un trabajo.
    3. Actualiza el trabajo con el siguiente comando:

      gcloud run jobs replace job.yaml

Soluciona problemas

No se puede borrar la subred

Para borrar una subred, primero debes borrar todos los recursos que la usen. Si Cloud Run usa una subred, debes desconectar Cloud Run de la red de VPC compartida o moverla a una subred diferente antes de borrar la subred.

No se puede desconectar la red de VPC compartida

Para desconectar la red de VPC compartida en el proyecto host, sigue los pasos para desaprovisionar la VPC compartida y asegúrate de desconectar cualquier servicio o trabajo de Cloud Run de la red de VPC compartida.

Para ver qué recursos de Cloud Run usan la red de VPC compartida, ejecuta el siguiente comando:

gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID

Reemplaza HOST_PROJECT_ID por el ID del proyecto host de VPC compartida.

La subred de VPC directa se queda sin direcciones IP

Si la subred de la red de VPC compartida se queda sin direcciones IP, se registra mediante Cloud Logging. Cuando esto ocurre, Cloud Run no puede iniciar más instancias de servicio ni tareas de trabajo hasta que haya más direcciones IP disponibles.

Visualiza las direcciones IP asignadas

Para ver qué direcciones IP asignó Cloud Run, ve a la página de direcciones IP en la consola de Google Cloud o ejecuta el siguiente comando desde Google Cloud CLI:

gcloud compute addresses list