Salida de VPC directa con una red de VPC

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

Antes de comenzar

  • Si aún no tienes una red de VPC en tu proyecto, crea una.

  • Si usas una VPC compartida, consulta Conéctate a una red de VPC compartida.

  • Si usas una subred de VPC, la subred debe ser /24 o mayor.

  • Para asegurarte de tener suficientes direcciones IP disponibles para usar en Cloud Run, ten en cuenta las siguientes condiciones:

    • La subred en la que planeas implementar servicios o revisiones de Cloud Run debe tener al menos cientos de direcciones IP disponibles.
    • En estado estable, si la cantidad total de instancias de Cloud Run que usan la subred es de 100 o más, reserva suficientes direcciones IP para al menos 4 veces (4X) la cantidad de instancias. Cuando una revisión se reduce, ten en cuenta que Cloud Run conserva sus direcciones IP durante un máximo de 20 minutos. Por ejemplo, si actualizas revisiones para que revision 1 escale de 100 instancias a cero, mientras que revision 2 escala de cero a 100, Cloud Run conserva la IP revision 1 direcciones durante un máximo de 20 minutos después de reducir el escalamiento. Durante el período de 20 minutos en este caso, debes reservar al menos 800 direcciones IP ((100 + 100) * 4).

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
  • Proxy web seguro
  • 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.

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 vertical

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

Configura los permisos de IAM

Asegúrate de que Cloud Run tenga acceso a la red de VPC mediante uno de los siguientes métodos:

  • Rol Agente de servicio de Cloud Run: De forma predeterminada, el agente de servicio de Cloud Run tiene el rol Agente de servicio de Cloud Run (roles/run.serviceAgent) que contiene los permisos necesarios.

  • Permisos personalizados: Para obtener un control más detallado, otorga al agente de servicio de Cloud Run los siguientes permisos adicionales en el proyecto:

    • compute.networks.get
    • compute.subnetworks.get
    • compute.subnetworks.use en el proyecto host o en la subred específica
    • compute.addresses.get
    • compute.addresses.list
    • compute.addresses.createInternal
    • compute.addresses.deleteInternal
  • Rol Usuario de red de Compute: si no usas el rol predeterminado Agente de servicio de Cloud Run o los permisos personalizados, otorga el rol Usuario de red de Compute (roles/compute.networkUser) ) en la cuenta de servicio del Agente de servicios de Cloud Run mediante la ejecución del siguiente comando:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID de tu proyecto.
    • PROJECT_NUMBER: El número de proyecto en el que implementas tu servicio o trabajo de Cloud Run.

Implementa un servicio

La salida de VPC directa permite que tu servicio de Cloud Run envíe tráfico a una red de VPC 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 usar etiquetas de red de forma directa en las revisiones de servicio de Cloud Run para obtener una seguridad de red más detallada.

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

Console

  1. Ir a Cloud Run

  2. Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. 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 de forma directa a una VPC.

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

  8. En el campo Subred, selecciona la subred desde la que tu servicio recibe direcciones IP. Puedes implementar varios servicios en la misma subred.

  9. 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.

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

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

  12. Para verificar que tu servicio esté en tu red de VPC, 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, como lo permiten las reglas de firewall.

gcloud

Para implementar un servicio de Cloud Run sin un conector de Google Cloud CLI, sigue estos pasos:

  1. Asegúrate de que la API de Compute Engine esté habilitada para tu proyecto:

    gcloud services enable compute.googleapis.com
    
  2. Implementa el servicio de Cloud Run con el siguiente comando:

    gcloud run deploy SERVICE_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION
    

    Reemplaza lo siguiente:

    • SERVICE_NAME por el nombre del servicio de Cloud Run.
    • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • NETWORK por el nombre de la red de VPC.
    • SUBNET por el nombre de la subred Puedes implementar o ejecutar varios servicios o trabajos en la misma 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 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.
      • private-ranges-only: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
    • REGION por una región para el servicio.
  3. Para verificar que tu servicio esté en tu red de VPC, ejecuta el siguiente comando:

    gcloud run services describe SERVICE_NAME \
    --region=REGION
    

    Reemplaza lo siguiente:

    • SERVICE_NAME por el nombre de tu servicio
    • REGION por la región del servicio que especificaste en el paso anterior.

    El resultado debe contener el nombre de tu red, subred y configuración de salida, por ejemplo:

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

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

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 la red de VPC.
    • SUBNET por el nombre de la subred Puedes implementar o ejecutar varios servicios o trabajos en la misma 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.
      • private-ranges-only: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
    • IMAGE por la URL de la imagen de contenedor de servicio.

    También puedes especificar más opciones de configuración, como variables de entorno o límites de memoria.

  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"
    
      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 sin un conector de Acceso a VPC sin servidores.

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. Ir a Cloud Run

  2. Si quieres configurar un nuevo trabajo, haz clic en la pestaña Trabajos y completa la página de configuración de trabajo inicial según sea necesario. Si quieres configurar un trabajo existente, haz clic en el trabajo y, luego, 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 de forma directa a una VPC.

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

  8. En el campo Subred, selecciona la subred desde la que tu trabajo recibe direcciones IP. Puedes ejecutar varios trabajos en la misma subred.

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

    • Enruta solo las solicitudes a IP privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red de VPC.
    • Enruta todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC.
  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. Opcional: Ingresa los nombres de las etiquetas de red que quieres asociar a tu trabajo o trabajos. Para los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de trabajo puede tener etiquetas de red diferentes, como network-tag-2.

  12. Haz clic en Crear o Actualizar.

  13. Para verificar que tu trabajo esté en la red de VPC, 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, como lo permiten las reglas de firewall.

gcloud

Para crear un trabajo de Cloud Run sin un conector de Google Cloud CLI, sigue estos pasos:

  1. Asegúrate de que la API de Compute Engine esté habilitada para tu proyecto:

    gcloud services enable compute.googleapis.com
    
  2. Crea un trabajo de Cloud Run con el siguiente comando:

    gcloud run jobs create JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --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 una referencia a la imagen de contenedor, como us-docker.pkg.dev/cloudrun/container/job:latest
    • NETWORK por el nombre de la red de VPC.
    • SUBNET por el nombre de la subred Puedes implementar o ejecutar varios servicios o trabajos en la misma 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.
      • private-ranges-only: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
    • REGION por una región para el trabajo.
  3. Para verificar que el trabajo esté en tu red de VPC, ejecuta el siguiente comando:

    gcloud run jobs describe JOB_NAME \
      --region=REGION
      

    Reemplaza lo siguiente:

    • JOB_NAME por el nombre de tu trabajo.
    • REGION por la región del trabajo que especificaste en el paso anterior.

    El resultado debe contener el nombre de tu red y subred, por ejemplo:

    VPC network:
      Network:       default
      Subnet:        default
    

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

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 la red de VPC.
    • SUBNET por el nombre de la subred Puedes implementar o ejecutar varios servicios o trabajos en la misma 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.
      • private-ranges-only: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
    • 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

Restringe el acceso con reglas de firewall

Restringe el acceso a los recursos en una red de VPC mediante las reglas de firewall de VPC. Agrega estas restricciones mediante una de las siguientes estrategias:

  • Crea una regla de firewall de entrada que haga referencia a tu servicio o trabajo mediante el rango de IP de la subred.
  • Crea una regla de firewall de salida que haga referencia a tu servicio o trabajo.

    En la regla de firewall de salida, haz referencia a tu servicio o trabajo mediante la identidad de servicio de la cuenta de servicio vinculado, el rango de IP de la subred o las etiquetas de red asociadas.

Etiquetas de red para la salida

Agrega una capa adicional de seguridad de red mediante etiquetas de red en las reglas de firewall de salida.

Console

Para asociar etiquetas de red a un servicio o trabajo, sigue estos pasos:

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

    Ir a Cloud Run

  2. Haz clic en el servicio o trabajo con el que deseas asociar las etiquetas de red y, luego, haz clic en Editar e implementar nueva revisión para servicios o en Editar para trabajos.

  3. Haz clic en la pestaña Herramientas de redes para los servicios o en la pestaña Conexiones para los trabajos.

  4. Asegúrate de nhaber seleccionado Conectar a una VPC para el tráfico saliente y Enviar tráfico directamente a una VPC.

  5. En el campo Subred, selecciona la subred desde la que tu servicio recibe direcciones IP. Puedes implementar o ejecutar varios servicios o trabajos en la misma subred.

  6. En el campo Etiquetas de red, ingresa los nombres de las etiquetas de red que deseas asociar con el servicio o el trabajo.

  7. Haz clic en Implementar o Actualizar.

En el caso de los servicios, cada revisión de servicio puede tener un conjunto diferente de etiquetas de red, ya que se especifican a nivel de revisión. En el caso de los trabajos, una ejecución de trabajo tiene las mismas etiquetas de red que tenía el trabajo cuando se creó el trabajo.

gcloud

Para asociar las etiquetas de red a un servicio o trabajo, usa el comando gcloud run deploy:

gcloud run deploy SERVICE_JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --region=REGION

Reemplaza lo siguiente:

  • SERVICE_JOB_NAME por el nombre de tu servicio o trabajo.
  • IMAGE_URL por la URL de imagen del servicio o el trabajo.
  • NETWORK por el nombre de la red de VPC.
  • SUBNET por el nombre de la subred Puedes implementar o ejecutar varios servicios o trabajos en la misma subred.
  • NETWORK_TAG_NAMES por el nombre de tu etiqueta de red o una lista de etiquetas de red separadas por comas.
  • REGION por el nombre de tu región

En el caso de los servicios, cada revisión de servicio puede tener un conjunto diferente de etiquetas de red, ya que se especifican a nivel de revisión. En el caso de los trabajos, una ejecución de trabajo tiene las mismas etiquetas de red que tenía el trabajo cuando se creó el trabajo.

Desconecta un servicio

Console

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

    1. 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, 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, 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, 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, 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, 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: El nombre de tu red de VPC
      • SUBNET: el nombre de tu subred.
      • Opcional: NETWORK_TAG_NAMES: son los nombres de las etiquetas de red si las asociaste con un servicio.
    3. Implementa la revisión del servicio a través de la ejecución del 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, 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"}]'

      Dónde

      • NETWORK: El nombre de tu red de VPC
      • SUBNET: el nombre de tu subred.
    3. Implementa la revisión del servicio a través de la ejecución del siguiente comando:

      gcloud run services replace service.yaml

Desconecta un trabajo

Console

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

    1. 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 Conexiones.

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

    5. Haga clic en Update.

    6. Para verificar que tu trabajo ya no esté en tu red de VPC, 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, 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. Haga clic en Update.

gcloud

  • Para quitar tu trabajo de la red de VPC, 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, 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, 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"}]'

      Reemplaza lo siguiente:

      • NETWORK: El nombre de tu red de VPC
      • SUBNET: el nombre de tu subred.
      • Opcional: NETWORK_TAG_NAMES por los nombres de las etiquetas de red si las asociaste con un trabajo.
    3. Actualiza el trabajo a través de la ejecución del 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, haz lo siguiente:

    1. Descarga la configuración YAML del trabajo:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Quita las variables tags del contenido de tu archivo job.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: El nombre de tu red de VPC
      • SUBNET: el nombre de tu subred.
    3. Actualiza el trabajo a través de la ejecución del siguiente comando:

      gcloud run jobs replace job.yaml

Soluciona problemas

No se puede borrar la subred

Para borrar una subred, primero debes borrar o volver a implementar todos los recursos que la usen. Si Cloud Run usa una subred, desconecta el servicio o el trabajo de Cloud Run de la red de VPC o muévelo a una subred diferente antes borrar la subred.

La subred de VPC directa se queda sin direcciones IP

Si la subred de la red de VPC se queda sin direcciones IP, se registra a través de 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