Puedes habilitar tu servicio o trabajo de Cloud Run para que envíe tráfico a una red de VPC compartida mediante la salida de VPC directa sin necesidad de un conector de acceso a VPC sin servidor.
En esta página se describe cómo configurar los permisos de gestión de identidades y accesos de Cloud Run para usar la subred de la red de VPC compartida y, a continuación, colocar el servicio o el trabajo en la subred compartida.
Antes de empezar
Consulte las siguientes secciones de configuración de direcciones IP:
Asignación de direcciones IP para obtener información sobre cómo asignar direcciones IP de tu subred.
Estrategias de agotamiento de direcciones IP para usar intervalos de direcciones IP alternativos.
Limitaciones
Se aplican las siguientes limitaciones a los servicios, los trabajos y los grupos de trabajadores de Cloud Run:
- Es posible que experimentes retrasos de un minuto o más en el establecimiento de la conexión al iniciar la instancia si usas la salida de VPC directa. Te recomendamos que configures una prueba de inicio HTTP que compruebe una conexión con un destino de salida que use la aplicación antes de que esta acepte solicitudes. Esta prueba de conectividad de salida debe implementar reintentos o la sonda de inicio debe configurarse con los valores de periodo y umbral adecuados para actuar como reintento.
- Cloud Run admite un rendimiento de hasta 1 Gbps por instancia. Si se supera esta cantidad, se limitará el rendimiento.
Una cuota de uso de Cloud Run limita el número máximo de instancias que puedes configurar para usar la salida de VPC directa. El número máximo se configura por revisión de Cloud Run o ejecución de trabajo. Para aumentar los límites predeterminados, consulta cómo aumentar las cuotas.
- Los servicios, los trabajos y los grupos de trabajadores de Cloud Run pueden sufrir interrupciones de la conexión durante los eventos de mantenimiento de la infraestructura de red. Te recomendamos que utilices bibliotecas de cliente que puedan gestionar los restablecimientos de conexión ocasionales.
- La compatibilidad con la salida directa de VPC para el tráfico IPv6 interno solo está disponible en la versión preliminar.
- NAT privada solo está disponible en la versión preliminar.
Los siguientes elementos no son compatibles con la salida de VPC directa:
- VPC Flow Logs no proporciona el nombre del servicio ni de la revisión de Cloud Run.
- Los registros de flujo de VPC no se generan a partir de recursos que no son máquinas virtuales, como Cloud Run o máquinas on-premise.
- Replicación de paquetes
- Network Intelligence Center, incluidas las pruebas de conectividad
- Tráfico IPv6 externo a través de una red de VPC
- Etiquetas de red o identidad de servicio en reglas de cortafuegos de entrada.
- Las reglas de cortafuegos no pueden usar etiquetas de Resource Manager asociadas a cargas de trabajo de Cloud Run.
- Los trabajos de Cloud Run que se ejecutan durante más de 1 hora pueden experimentar interrupciones en la conexión. Esto puede ocurrir durante 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ñalSIGCONT
después del evento. Una vez que el contenedor reciba la señalSIGCONT
, vuelve a intentar la conexión.
Configurar permisos de gestión de identidades y accesos
Para 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 los permisos suficientes para usar la subred.
Para acceder a la red de VPC compartida, concede permisos suficientes al agente de servicio de Cloud Run añadiendo uno de los siguientes roles:
Usuario de red de Compute (
compute.networkUser
) en el proyecto de host de 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"
Haz los cambios siguientes:
- HOST_PROJECT_ID: el ID de tu proyecto host de VPC compartida.
- SERVICE_PROJECT_NUMBER: el número del proyecto de servicio de VPC compartida en el que despliegues tu servicio o trabajo de Cloud Run.
Lector de redes de Compute (
compute.networkViewer
) en el proyecto host de VPC compartida y el rol Usuario de redes de Compute (compute.networkUser
) en la subred de VPC compartida.Por ejemplo, para conceder el rol Usuario 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
Haz los cambios siguientes:
- SUBNET_NAME: el nombre de recurso completo de la subred en la que quieres ejecutar tus servicios de Cloud Run.
- REGION: la región de tu servicio de Cloud Run, que debe coincidir con la región de tu subred.
- SERVICE_PROJECT_NUMBER: el número del proyecto de servicio de VPC compartida en el que despliegues tu servicio o trabajo de Cloud Run.
- HOST_PROJECT_ID: el ID de tu proyecto host de VPC compartida.
El agente de servicio de Cloud Run requiere el rol Agente de servicio de Cloud Run en tu proyecto de Cloud Run. Para comprobar que el rol no se ha quitado manualmente, ejecuta el siguiente comando:
gcloud projects get-iam-policy SERVICE_PROJECT_ID \ --flatten bindings \ --filter "bindings.role:roles/run.serviceAgent"
Sustituye SERVICE_PROJECT_ID por el ID del proyecto de tu servicio o tarea de Cloud Run.
Para tener un control más exhaustivo, 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 compartidacompute.subnetworks.get
en el proyecto del host o en la subred específicacompute.subnetworks.use
en el proyecto del host o en la subred específicacompute.addresses.get
en el proyecto de servicio de VPC compartidacompute.addresses.list
en el proyecto de servicio de VPC compartidacompute.addresses.createInternal
en el proyecto de servicio de VPC compartidacompute.addresses.deleteInternal
en el proyecto de servicio de VPC compartidacompute.regionOperations.get
en el proyecto de servicio de VPC compartida
Asignación de direcciones IP
Para colocar tu servicio, trabajo o grupo de trabajadores de Cloud Run en una red de VPC, especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Cloud Run asigna direcciones IP de tu subred.
Las direcciones IP son efímeras, por lo que no debes crear políticas basadas en IPs concretas. Si necesitas crear una política basada en IPs, como en las reglas de cortafuegos, debes usar el intervalo de direcciones IP de toda la subred.
Para cambiar la red o la subred que usa tu servicio, trabajo o grupo de trabajadores, despliega una nueva revisión o ejecuta una nueva tarea de trabajo que use los nuevos valores de red y subred.
Escalar verticalmente y reducir verticalmente
Para aumentar la escala más rápido durante un pico de tráfico, Cloud Run reserva direcciones IP en bloques de 16 (máscara de subred 28
) a la vez.
Consulta qué direcciones IP ha asignado Cloud Run.
Para asegurarte de que tienes suficientes direcciones IPv4 disponibles para usar en Cloud Run, el intervalo de direcciones IPv4 de tu subred debe ser /26
o mayor.
Para que la asignación de IPs sea eficiente y la gestión resulte más sencilla, coloca varios recursos en la misma subred. Si tu espacio de direcciones IPv4 es limitado, consulta Intervalos de IPv4 admitidos para ver más opciones.
Para eliminar la subred, primero debes eliminar o volver a implementar tus servicios, trabajos o grupos de trabajadores de Cloud Run para dejar de usar la subred y, a continuación, esperar entre 1 y 2 horas.
Consumo de direcciones IP para servicios y grupos de trabajadores
En estado estable, Cloud Run usa el doble de direcciones IP que el número de instancias. Cuando una revisión se reduce, Cloud Run conserva sus direcciones IP durante un máximo de 20 minutos. En total, reserva al menos el doble del número de direcciones IP, más un margen para tener en cuenta las actualizaciones de revisión.
Por ejemplo, si actualiza las revisiones para que revision 1
pase de 100 instancias a cero mientras que revision 2
pasa de cero a 100, Cloud Run conserva las direcciones IP de revision 1
hasta 20 minutos después de reducir la escala. Durante la ventana de retención de 20 minutos, debes reservar al menos 400 direcciones IP ((100 + 100) * 2
).
Consumo de IPs para trabajos
En el caso de las tareas de Cloud Run, cada tarea consume 1 dirección IP durante el tiempo que se ejecuta, más 7 minutos después de completarse. Asegúrate de que tu subred sea lo suficientemente grande como para dar cabida a todas las ejecuciones simultáneas de tareas, con una reserva mínima de /26
subredes.
Por ejemplo:
- Un trabajo de una sola tarea que se ejecuta a diario y siempre se completa al menos 7 minutos antes de la siguiente ejecución consume un máximo de 1 dirección IP en la subred.
- Una tarea de 10 subtareas que se ejecuta cada 10 minutos y en la que cada subtarea se ejecuta durante 15 minutos consume 1 dirección IP durante 22 minutos por subtarea (3 ejecuciones consumen direcciones IP al mismo tiempo), como se muestra en el siguiente ejemplo. Por lo tanto, el trabajo consume 30 direcciones IP en estado estable.
- Un trabajo de una sola tarea que tarda 1 minuto en ejecutarse y se ejecuta 100 veces por minuto requiere aproximadamente 800 direcciones IP, según la hora exacta de ejecución.
Intervalos de IPv4 admitidos
Cloud Run admite los siguientes intervalos de IPv4 para tu subred:
Desplegar un servicio
La salida directa de VPC 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 servidor. Los costes de red se reducen a cero al igual que el propio servicio. También puedes añadir etiquetas de red directamente en las revisiones de servicios de Cloud Run para disfrutar de una seguridad de red más granular, como aplicar reglas de cortafuegos de VPC.
Puedes configurar la salida de VPC directa con un servicio mediante laGoogle Cloud consola, la CLI de Google Cloud o YAML.
Consola
En la Google Cloud consola, ve a la página Cloud Run:
Selecciona Servicios en el menú y haz clic en Implementar contenedor para configurar un nuevo servicio. Si va a configurar y desplegar un servicio que ya tiene, haga clic en el servicio y, a continuación, en Editar y desplegar nueva revisión.
Si vas a configurar un servicio nuevo, rellena la página de configuración inicial del servicio según sea necesario y, a continuación, haz clic en Contenedores, volúmenes, redes y seguridad para desplegar la página de configuración del servicio.
Haz clic en la pestaña Redes.
Haz clic en Conectarse a una VPC para el tráfico saliente.
Haz clic en Enviar tráfico directamente a una VPC.
Selecciona Redes compartidas conmigo.
En el campo Red, selecciona la red de VPC compartida a la que quieras enviar el tráfico.
En el campo Subred, selecciona la subred de la que tu servicio recibe direcciones IP.
Opcional: Introduce los nombres de las etiquetas de red que quieras asociar a tu servicio o servicios. Las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener etiquetas de red diferentes, como
network-tag-2
.En Enrutamiento del tráfico, seleccione una de las siguientes opciones:
- Dirige solo las solicitudes a IP privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red VPC compartida.
- Dirige todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC compartida.
Haz clic en Crear o en Implementar.
Para verificar que tu servicio está en tu red de VPC compartida, haz clic en el servicio y, a continuación, en la pestaña Redes. La red y la subred se muestran en la tarjeta VPC.
Ahora puede enviar solicitudes desde su servicio de Cloud Run a cualquier recurso de la red de VPC compartida, según lo permitan sus reglas de firewall.
gcloud
Para colocar tu servicio en la subred compartida, especifica los nombres de recursos completos de la red VPC compartida y la subred ejecutando el 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
Haz los cambios siguientes:
- SERVICE_NAME: el nombre de tu servicio de Cloud Run.
- IMAGE_URL: URL de la imagen del servicio.
- HOST_PROJECT_ID: el ID de tu proyecto de VPC compartida.
- VPC_NETWORK: nombre de recurso completo de tu red de VPC compartida.
- REGION: la región de tu servicio de Cloud Run, que debe coincidir con la región de tu subred.
- SUBNET_NAME: el nombre completo del recurso de tu subred.
- Opcional: NETWORK_TAG_NAMES con los nombres separados por comas de las etiquetas de red que quieras asociar a un servicio. En el caso de los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener etiquetas de red diferentes, como
network-tag-2
. - EGRESS_SETTING con un
valor de ajuste de salida:
all-traffic
: envía todo el tráfico saliente a través 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: número máximo de instancias que se pueden usar en la red de VPC compartida. El número máximo de instancias permitido para los servicios es 100.
Para obtener más información y argumentos opcionales, consulta la referencia de gcloud
.
YAML
Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Actualice 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
Sustituye:
- SERVICE_NAME con el nombre de tu servicio de Cloud Run. Los nombres de los servicios deben tener 49 caracteres como máximo y ser únicos por región y proyecto.
- REGION por la región de tu servicio de Cloud Run, que debe coincidir con la de tu subred.
- NETWORK con el nombre completo del recurso de tu red de VPC compartida.
- SUBNET_NAME con el nombre completo del recurso de tu subred.
- Opcional: NETWORK_TAG_NAMES con los nombres de las etiquetas de red que quieras asociar a un servicio. En el caso de los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener etiquetas de red diferentes, como
network-tag-2
. - EGRESS_SETTING con un
valor de ajuste de salida:
all-traffic
: envía todo el tráfico saliente a través 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 tu contenedor de servicio.
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a tu archivo
main.tf
:
Si quieres permitir el acceso al servicio sin autenticación, puedes hacerlo público.
Crear una tarea
La salida directa de VPC 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 servidor. También puedes añadir etiquetas de red directamente a los trabajos de Cloud Run para disfrutar de una seguridad de red más granular, como aplicar reglas de cortafuegos de VPC.
Puedes configurar la salida de VPC directa con un trabajo mediante laGoogle Cloud consola, la CLI de Google Cloud o YAML.
Consola
En la Google Cloud consola, ve a la página Cloud Run:
Si vas a configurar un nuevo trabajo, haz clic en Implementar contenedor y selecciona Trabajo para rellenar el formulario inicial Crear trabajo según sea necesario. Si vas a configurar un trabajo ya creado, haz clic en la pestaña Trabajos, selecciona un trabajo y, a continuación, haz clic en Editar.
Haz clic en Contenedor, Variables y secretos, Conexiones y Seguridad para desplegar la página de propiedades del trabajo.
Haz clic en la pestaña Conexiones.
Haz clic en Conectarse a una VPC para el tráfico saliente.
Haz clic en Enviar tráfico directamente a una VPC.
Selecciona Redes compartidas conmigo.
En el campo Red, selecciona la red de VPC compartida a la que quieras enviar el tráfico.
En el campo Subred, selecciona la subred de la que tu tarea recibe direcciones IP.
Opcional: Introduce los nombres de las etiquetas de red que quieras asociar a un trabajo. En el caso de los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de un trabajo puede tener etiquetas de red diferentes, como
network-tag-2
.En Enrutamiento del tráfico, seleccione una de las siguientes opciones:
- Dirige solo las solicitudes a IP privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red VPC compartida.
- Dirige todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC compartida.
Haz clic en Crear o en Actualizar.
Para verificar que la tarea está en tu red de VPC compartida, haz clic en la tarea y, a continuación, en la pestaña Configuración. La red y la subred se muestran en la tarjeta VPC.
Ahora puedes ejecutar tu trabajo de Cloud Run y enviar solicitudes desde el trabajo a cualquier recurso de la red de VPC compartida, según lo permitan tus reglas de cortafuegos.
gcloud
Para colocar el trabajo en la subred compartida, especifica los nombres de recursos totalmente cualificados de la red de VPC compartida y la subred ejecutando el 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 \
Haz los cambios siguientes:
- JOB_NAME: el nombre de tu tarea de Cloud Run.
- IMAGE_URL: URL de la imagen del trabajo.
- HOST_PROJECT_ID: el ID de tu proyecto host de VPC compartida.
- VPC_NETWORK: nombre de recurso completo de tu red de VPC compartida.
- REGION: la región de tu trabajo de Cloud Run, que debe coincidir con la región de la subred.
- SUBNET_NAME: el nombre completo del recurso de tu subred.
- Opcional: NETWORK_TAG_NAMES con los nombres separados por comas de las etiquetas de red que quieras asociar a un trabajo. Cada ejecución de un trabajo puede tener etiquetas de red diferentes, como
network-tag-2
. - EGRESS_SETTING con un
valor de ajuste de salida:
all-traffic
: envía todo el tráfico saliente a través 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 información y argumentos opcionales, consulta la referencia de gcloud
.
YAML
Si vas a crear un trabajo, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Actualice 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
Sustituye:
- JOB_NAME con el nombre de tu trabajo de Cloud Run. Los nombres de los trabajos deben tener 49 caracteres como máximo y ser únicos por región y proyecto.
- REGION con la región de tu trabajo de Cloud Run, que debe coincidir con la región de tu subred.
- NETWORK con el nombre completo del recurso de tu red de VPC compartida.
- SUBNET con el nombre completo del recurso de tu subred.
- Opcional: NETWORK_TAG_NAMES con los nombres de las etiquetas de red que quieras asociar a un trabajo. En el caso de los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de un trabajo puede tener etiquetas de red diferentes, como
network-tag-2
. - EGRESS_SETTING con un
valor de ajuste de salida:
all-traffic
: envía todo el tráfico saliente a través 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 con la URL de la imagen del contenedor de tu trabajo.
Crea o actualiza el trabajo con el siguiente comando:
gcloud run jobs replace job.yaml
Configurar una subred de pila dual
Para añadir una subred de pila dual con un intervalo IPv6 interno en un servicio o un trabajo de Cloud Run, consulta Configurar una subred de pila dual.
Desconectar un servicio
Consola
Para quitar tu servicio de la red de VPC compartida, sigue estos pasos:
En la Google Cloud consola, ve a la página Cloud Run:
Haz clic en el servicio que quieras quitar y, a continuación, en Editar y desplegar nueva revisión.
Haz clic en la pestaña Redes.
Desmarca Conectarse a una VPC para el tráfico saliente.
Haz clic en Desplegar.
Para comprobar que tu servicio ya no está en tu red de VPC compartida, haz clic en la pestaña Redes. La red y la subred ya no aparecen en la tarjeta VPC.
Para quitar solo las etiquetas de red y mantener el servicio conectado a la red de VPC compartida, sigue estos pasos:
Haga clic en el servicio que contenga las etiquetas de red que quiera quitar y, a continuación, en Editar y desplegar nueva revisión.
Haz clic en la pestaña Redes.
Borra los nombres de las etiquetas de red que ya no quieras asociar a tu servicio.
Haz clic en Desplegar.
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 eliminar solo las etiquetas de red y 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
Haz los cambios siguientes:
- SERVICE_NAME: el nombre de tu servicio de Cloud Run.
- REGION: la región de tu servicio de Cloud Run.
YAML
Para quitar tu servicio de la red de VPC compartida, sigue estos pasos:
Descarga la configuración YAML del servicio:
gcloud run services describe SERVICE_NAME --format export > service.yaml
Elimina el siguiente contenido del archivo
service.yaml
:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
Dónde
- NETWORK: nombre de recurso completo de tu red de VPC compartida.
- SUBNET: el nombre completo del recurso de tu subred.
- Opcional: NETWORK_TAG_NAMES: los nombres de las etiquetas de red si las has asociado a un servicio.
Actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Para quitar solo las etiquetas de red y mantener el servicio conectado a la red de VPC compartida, sigue estos pasos:
Descarga la configuración YAML del servicio:
gcloud run services describe SERVICE_NAME --format export > service.yaml
Elimina la variable
tags
del contenido del archivoservice.yaml
y deja las variablesnetwork
ysubnetwork
, tal como se muestra en el siguiente ejemplo:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'
Haz los cambios siguientes:
- NETWORK: nombre de recurso completo de tu red de VPC compartida.
- SUBNET: el nombre completo del recurso de tu subred.
Actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Desconectar una tarea
Consola
Para quitar tu trabajo de la red de VPC compartida, sigue estos pasos:
En la Google Cloud consola, ve a la página Cloud Run:
Haz clic en el trabajo que quieras quitar y, a continuación, en Editar y desplegar nueva revisión.
Haz clic en la pestaña Configuration (Configuración).
Desmarca Conectarse a una VPC para el tráfico saliente.
Haz clic en Actualizar.
Para comprobar 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 aparecen en la tarjeta VPC.
Para quitar solo las etiquetas de red y mantener el trabajo conectado a la red de VPC compartida, sigue estos pasos:
Haz clic en el trabajo que contenga las etiquetas de red que quieras quitar y, a continuación, en Editar y desplegar nueva revisión.
Haz clic en la pestaña Conexiones.
Borra los nombres de las etiquetas de red que ya no quieras asociar a tu trabajo.
Haz clic en Actualizar.
gcloud
Para quitar el 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 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
Haz los cambios siguientes:
- JOB_NAME: el nombre de tu tarea de Cloud Run.
- REGION: la región de tu tarea de Cloud Run.
YAML
Para quitar tu trabajo de la red de VPC compartida, sigue estos pasos:
Descarga la configuración YAML del trabajo:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Elimina el siguiente contenido del archivo
job.yaml
:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
Dónde
- NETWORK: nombre de recurso completo de tu red de VPC compartida.
- SUBNET: el nombre completo del recurso de tu subred.
- Opcional: NETWORK_TAG_NAMES: los nombres de las etiquetas de la red si las has asociado a un trabajo.
Actualiza el trabajo con el siguiente comando:
gcloud run jobs replace job.yaml
Para quitar solo las etiquetas de red y mantener el trabajo conectado a la red de VPC compartida, sigue estos pasos:
Descarga la configuración YAML del trabajo:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Elimina el siguiente contenido del archivo
job.yaml
:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
Dónde
- NETWORK: nombre de recurso completo de tu red de VPC compartida.
- SUBNET: el nombre completo del recurso de tu subred.
- Opcional: NETWORK_TAG_NAMES: los nombres de las etiquetas de la red si las has asociado a un trabajo.
Actualiza el trabajo con el siguiente comando:
gcloud run jobs replace job.yaml
Solución de problemas
No se puede eliminar la subred
Para eliminar una subred, primero debe eliminar todos los recursos que la usen. Si Cloud Run usa una subred, debes desconectar Cloud Run de la red de VPC compartida o moverlo a otra subred antes de eliminar la subred.
No se puede separar la red de VPC compartida
Para separar la red de VPC compartida del proyecto host, sigue los pasos para desaprovisionar la VPC compartida y asegúrate de desconectar los servicios o los trabajos de Cloud Run de la red de VPC compartida.
Para ver qué recursos de Cloud Run están usando la red de VPC compartida, ejecuta el siguiente comando:
gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
Sustituye HOST_PROJECT_ID por el ID de tu proyecto host de VPC compartida.
La subred de salida de VPC directa se queda sin direcciones IPv4
Se produce el siguiente error al intentar implementar:
Instance failed to start because of insufficient free IP addresses in the subnetwork SUBNET_ID when attempting to create an address in the subnetwork. Please consider moving to a subnetwork with more available IP addresses.
Si la subred de la red VPC se queda sin direcciones IPv4, Cloud Logging lo registra. Cuando esto ocurre, Cloud Run no puede iniciar más instancias de servicio ni tareas hasta que haya más direcciones IPv4 disponibles.
Para solucionar este problema, sigue las estrategias de agotamiento de direcciones IP.
Ver las direcciones IP asignadas
Para ver qué direcciones IP ha asignado Cloud Run, ve a la página de direcciones IP en la Google Cloud consola o ejecuta el siguiente comando desde la CLI de Google Cloud:
gcloud compute addresses list