Puedes habilitar tu servicio o tarea de Cloud Run servicio, función, tarea, grupo de trabajadores o instancia para enviar tráfico a una red de VPC mediante la salida de VPC directa sin necesidad de un conector de acceso a VPC sin servidor.
Algunos recursos, como los grupos de trabajadores y las instancias, también pueden recibir tráfico de una red de VPC mediante el tráfico de entrada de VPC directa.
Cloud Run admite las siguientes configuraciones de VPC directa:
- Servicios: solo de salida
- Tareas: solo de salida
- Grupos de trabajadores: salida y entrada
- Instancias: salida y entrada
Antes de empezar
Si aún no tienes una red de VPC en tu proyecto, crea una.
Si usas una VPC compartida con servicios o tareas de Cloud Run, consulta el artículo Conectarse a una red de VPC compartida.
Consulta 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
Las siguientes limitaciones se aplican a los servicios, las funciones, las tareas, los grupos de trabajadores y las instancias de Cloud Run :
- Es posible que se produzcan retrasos de un minuto o más en el establecimiento de la conexión al iniciar la instancia cuando se usa la salida de VPC directa. Te recomendamos que configures una sonda de inicio HTTP que pruebe la 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 un periodo y un umbral adecuados para que actúe como reintento.
- Las tareas de Cloud Run que se ejecuten durante más de una hora pueden sufrir 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
SIGTSTP10 segundos antes del evento y una señalSIGCONTdespués del evento. Cuando el contenedor reciba la señalSIGCONT, vuelve a intentar la conexión. - Con Cloud NAT, puede que experimentes retrasos de arranque en frío de 30 segundos o más al iniciar la instancia cuando uses la salida de VPC directa. Para mejorar el rendimiento de inicio, te recomendamos que uses conectores de acceso a VPC sin servidor con Cloud NAT.
- Cloud Run admite un rendimiento de hasta 1 Gbps por instancia de contenedor individual. Si se supera este importe, se limitará el rendimiento.
La cuota de uso de Cloud Run limita el número máximo de instancias de contenedor que puedes configurar para usar la salida de VPC directa. El número máximo se configura por revisión de Cloud Run o por ejecución de tareas. Para aumentar los límites predeterminados, consulta cómo aumentar las cuotas.
- Los servicios y las tareas de Cloud Run servicios, tareas, pools de trabajadores e instancias pueden experimentar interrupciones de conexión durante los eventos de mantenimiento de la infraestructura de red. Te recomendamos que uses bibliotecas de cliente que puedan gestionar los reinicios de conexión ocasionales.
- Network Intelligence Center solo admite pruebas de conectividad y Flow Analyzer para los intervalos de subredes IPv4 e IPv6.
- Aunque los grupos de trabajadores y las instancias de Cloud Run admiten el tráfico de entrada de VPC directa, no puedes usar etiquetas de red para definir el destino de una regla de cortafuegos de entrada.
- El tráfico de entrada a los grupos de trabajadores y a las instancias de Cloud Run solo se admite mediante VPC directa, no con conectores de acceso a VPC sin servidor. Los conectores no admiten el tráfico de entrada.
La salida de VPC directa no admite los siguientes elementos:
- Los registros de flujo de VPC no proporcionan el nombre de la revisión de Cloud Run.
- Almacenamiento de registros de reglas de cortafuegos de VPC
- Replicación de paquetes
- Etiquetas de red o identidad de servicio en las reglas de cortafuegos de entrada.
- Las reglas de cortafuegos no pueden usar etiquetas de Resource Manager adjuntas a cargas de trabajo de Cloud Run.
- Inspeccionar el tráfico de salida con Cloud Next Generation Firewall Enterprise, como el servicio de detección y prevención de intrusos, el servicio de filtrado de URLs y la inspección de TLS.
Asignación de direcciones IP
Para colocar tu servicio o tarea de Cloud Run servicio, tarea, grupo de trabajadores o instancia en una red de VPC, especifica una red de VPC o 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 recurso de Cloud Run, crea un nuevo despliegue de tu revisión, tareas de trabajo o instancia que use los nuevos valores de red y subred.
Escalar y reducir verticalmente
Para escalar verticalmente más rápido durante un aumento del 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 usarlas en Cloud Run, el intervalo de direcciones IPv4 de tu subred debe ser /26 o superior.
Para que la asignación de IPs sea eficiente y fácil de gestionar, coloca varios recursos en la misma subred. Si tu espacio de direcciones IPv4 es limitado, consulta el artículo Intervalos de IPv4 admitidos para ver más opciones.
Para eliminar la subred, primero debes eliminar o volver a desplegar tusservicios, tareas, pools de workers o instancias de Cloud Run para dejar de usar la subred y, después, 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 de contenedor. Cuando se reduce verticalmente una revisión, Cloud Run conserva sus direcciones IP durante un máximo de 20 minutos. En total, reserva al menos el doble de direcciones IP, más un margen para las actualizaciones de revisión.
Por ejemplo, si actualizas las revisiones de modo que revision 1 se reduzca verticalmente de 100 instancias de contenedor a cero, mientras que revision 2 se amplíe verticalmente de cero a 100, Cloud Run conservará las direcciones IP de revision 1 durante un máximo de 20 minutos después de la reducción vertical. Durante el periodo de conservación de 20 minutos, debes reservar al menos 400 direcciones IP ((100 + 100) * 2).
Consumo de IP para trabajos
En el caso de las tareas de Cloud Run, cada tarea consume una dirección IP durante su ejecución y durante los 7 minutos posteriores a su finalización. Asegúrate de que tu subred sea lo suficientemente grande como para albergar todas las ejecuciones de tareas de trabajo simultáneas, con una reserva mínima de subred /26.
Por ejemplo:
- Un trabajo de una sola tarea que se ejecuta diariamente y que 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 tareas que se ejecuta cada 10 minutos, con cada tarea ejecutándose durante 15 minutos, consume 1 dirección IP durante 22 minutos por tarea (3 ejecuciones consumen direcciones IP al mismo tiempo), como se muestra en el siguiente ejemplo. Por lo tanto, la tarea consume 30 direcciones IP en estado estable.
- Una tarea de una sola tarea que tarda 1 minuto en ejecutarse y se ejecuta 100 veces por minuto requiere aproximadamente 800 direcciones IP, según el momento exacto de la ejecución.
Consumo de direcciones IP de instancias de Cloud Run
Cada instancia de Cloud Run consume cuatro direcciones IP de la subred mientras esté conectada a la red de VPC.
Las direcciones IP no son estáticas para ningún recurso de Cloud Run, aunque las instancias de Cloud Run sean de larga duración. Estas vinculaciones de direcciones IP no se conservan tras las paradas, los reinicios o las actualizaciones. Cuando detienes, reinicias o actualizas una instancia, se le asigna una nueva dirección IP privada.
Intervalos de IPv4 admitidos
Cloud Run admite los siguientes intervalos de IPv4 para tu subred:
Configurar permisos de gestión de identidades y accesos
Asegúrate de que Cloud Run tenga acceso a la red de VPC mediante uno de los siguientes métodos:
Rol de agente de servicio de Cloud Run: de forma predeterminada, el agente de servicio de Cloud Run tiene el rol de agente de servicio de Cloud Run (
roles/run.serviceAgent), que contiene los permisos necesarios.Permisos personalizados: para tener un control más granular, concede al agente de servicio de Cloud Run los siguientes permisos adicionales en el proyecto:
compute.networks.getcompute.subnetworks.getcompute.subnetworks.useen el proyecto o en la subred específicacompute.addresses.getcompute.addresses.listcompute.addresses.create(solo es necesario para subredes de doble pila con IPv6 externa)compute.addresses.delete(solo es necesario para las subredes de doble pila con IPv6 externa)compute.addresses.createInternalcompute.addresses.deleteInternalcompute.regionOperations.get
Rol de usuario de red de Compute: si no usas el rol de agente de servicio de Cloud Run predeterminado ni los permisos personalizados, concede el rol de usuario de red de Compute (
roles/compute.networkUser) en la cuenta de servicio del agente de servicio de Cloud Run. Las subredes con IPv6 externa también requieren el rol Administrador de IP pública de Compute (roles/compute.publicIpAdmin).Por ejemplo, para conceder el rol de usuario de red de Compute, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod." \ --role "roles/compute.networkUser"
Haz los cambios siguientes:
- PROJECT_ID: el ID de tu proyecto.
- PROJECT_NUMBER: el número del proyecto en el que despliegas tu recurso de Cloud Run.
Conectar recursos de Cloud Run a una red de VPC
En función del recurso de Cloud Run que tengas, consulta las instrucciones de una de las siguientes secciones:
- Desplegar un servicio
- Crear una tarea
- Desplegar un grupo de trabajadores
- Desplegar una instancia
Conectar un servicio a una red de VPC
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 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 mejorar la seguridad de la red de forma más granular, como aplicar reglas de cortafuegos de VPC.
Puedes configurar la salida de VPC directa con un servicio mediante laGoogle Cloud consola, Google Cloud CLI, YAML o Terraform.
Consola
En la consola de Google Cloud , ve a Cloud Run:
Selecciona Servicios en el menú de navegación de Cloud Run:
Si vas a configurar un servicio nuevo, haz clic en Desplegar contenedor y rellena la página de configuración inicial del servicio. A continuación, haz clic en Contenedores, redes y seguridad para desplegar la página de configuración del servicio.
Si vas a configurar un servicio que ya tienes, haz clic en él.
Haz clic en la pestaña Redes.
Haz clic en Conectar a una VPC para el tráfico saliente.
Haz clic en Enviar tráfico directamente a una VPC.
En el campo Red, selecciona la red de VPC a la que quieres enviar tráfico.
En el campo Subred, selecciona la subred de la que tu servicio recibe direcciones IP. Puedes desplegar varios servicios en la misma subred.
Opcional: Introduce los nombres de las etiquetas de red que quieras asociar a tus servicios. Las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener diferentes etiquetas de red, como
network-tag-2.En Enrutamiento del tráfico, selecciona una de las siguientes opciones:
- Enrutar 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.
- Dirige todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC.
Haz clic en Crear para un nuevo servicio. Haz clic en Ver diferencias y volver a desplegar y, a continuación, en Desplegar cambios para un servicio que ya tengas.
Para verificar que tu servicio está en tu red de VPC, haz clic en el servicio y, a continuación, en la pestaña Red. La red y la subred se muestran en la tarjeta VPC.
Ahora puedes enviar solicitudes desde tu servicio de Cloud Run a cualquier recurso de la red de VPC, según lo permitan tus reglas de cortafuegos.
gcloud
Servicio
Para desplegar un servicio de Cloud Run sin un conector desde la CLI de Google Cloud, sigue estos pasos:
Actualiza los componentes de
gclouda la última versión:gcloud components update
Asegúrate de que la API de Compute Engine esté habilitada en tu proyecto:
gcloud services enable compute.googleapis.com
Despliega tu 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
Sustituye:
- SERVICE_NAME por el nombre de tu servicio de Cloud Run.
IMAGE_URLus-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- NETWORK con el nombre de tu 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.
- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma 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 diferentes etiquetas de red, 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.private-ranges-only: envía solo tráfico a direcciones internas a través de la red de VPC.
- REGION con una región para tu servicio.
Para verificar que tu servicio está en tu red de VPC, ejecuta el siguiente comando:
gcloud run services describe SERVICE_NAME \ --region=REGION
Sustituye:
SERVICE_NAMEcon el nombre de tu servicio.REGIONpor la región de tu servicio que has especificado en el paso anterior.
La salida debe contener el nombre de tu red, la subred y el ajuste 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 de la red de VPC, según lo permitan tus reglas de cortafuegos.
Función
Para desplegar una función de Cloud Run sin un conector desde la Google Cloud CLI, sigue estos pasos:
Actualiza los componentes de
gclouda la última versión:gcloud components update
Asegúrate de que la API de Compute Engine esté habilitada en tu proyecto:
gcloud services enable compute.googleapis.com
Despliega tu función de Cloud Run con el siguiente comando:
gcloud run deploy FUNCTION_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION \ --function=FUNCTION_ENTRYPOINT
Sustituye:
- FUNCTION_NAME por el nombre de tu función de Cloud Run.
IMAGE_URLus-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- NETWORK con el nombre de tu 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.
- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma subred.
- Opcional: NETWORK_TAG_NAMES con los nombres separados por comas de las etiquetas de red que quieras asociar a una función. En el caso de las funciones, las etiquetas de red se especifican a nivel de revisión. Cada revisión 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.private-ranges-only: envía solo tráfico a direcciones internas a través de la red de VPC.
- REGION con una región para tu función.
- Opcional: FUNCTION_ENTRYPOINT con el punto de entrada a tu función en tu código fuente. Este es el código que ejecuta Cloud Run cuando se ejecuta tu función. El valor de esta marca debe ser un nombre de función o un nombre de clase completo que exista en tu código fuente.
Para verificar que tu función está en tu red de VPC, ejecuta el siguiente comando:
gcloud run services describe FUNCTION_NAME \ --region=REGION
Sustituye:
FUNCTION_NAMEcon el nombre de tu función.REGIONcon la región de tu función que hayas especificado en el paso anterior.
La salida debe contener el nombre de tu red, la subred y el ajuste de salida, por ejemplo:
VPC access: Network: default Subnet: subnet Egress: private-ranges-only
Ahora puedes enviar solicitudes desde tu función de Cloud Run a cualquier recurso de la red de VPC, según lo permitan tus reglas de cortafuegos.
YAML
Si vas a crear un servicio, sáltate este paso. Si vas a actualizar un servicio, descarga su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
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
Sustituye:
- SERVICE_NAME por 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 con la región de tu servicio de Cloud Run, que debe coincidir con la región de tu subred.
- NETWORK con el nombre de tu 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.
- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma 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 diferentes etiquetas de red, 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.private-ranges-only: envía solo tráfico a direcciones internas a través de la red de VPC.
- IMAGE con la URL de la imagen de contenedor de tu servicio.
También puedes especificar más ajustes de configuración, como variables de entorno o límites de memoria.
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 los siguientes elementos a tu archivo
main.tf:
Si quieres, puedes hacer que tu servicio sea público para permitir el acceso sin autenticación.
Conectar un trabajo a una red de VPC
La salida de VPC directa permite que tu tarea de Cloud Run envíe tráfico a una red de VPC sin un conector de acceso a VPC sin servidor. También puedes añadir etiquetas de red directamente en 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 una tarea mediante laGoogle Cloud consola, Google Cloud CLI o YAML.
Consola
Si vas a configurar una tarea nueva, haz clic en la pestaña Tareas y rellena la página de configuración inicial de la tarea según sea necesario. Si vas a configurar una tarea que ya existe, haz clic en ella y, a continuación, en Editar.
Haz clic en Contenedor, variables y secretos, conexiones y seguridad para mostrar la página de propiedades de la tarea.
Haz clic en la pestaña Conexiones.
Haz clic en Conectar a una VPC para el tráfico saliente.
Haz clic en Enviar tráfico directamente a una VPC.
En el campo Red, selecciona la red de VPC a la que quieras enviar tráfico.
En el campo Subred, selecciona la subred de la que tu tarea recibe direcciones IP. Puedes ejecutar varias tareas en la misma subred.
En Enrutamiento del tráfico, selecciona una de las siguientes opciones:
- Enrutar 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.
- Dirige todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC.
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 diferentes etiquetas de red, como
network-tag-2.Opcional: Introduce los nombres de las etiquetas de red que quieras asociar a tus tareas. En el caso de los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de tarea puede tener diferentes etiquetas de red, como
network-tag-2.Haz clic en Crear o en Actualizar.
Para verificar que tu tarea está en tu red de VPC, haz clic en ella 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 tarea de Cloud Run y enviar solicitudes desde la tarea a cualquier recurso de la red de VPC, según lo permitan tus reglas de cortafuegos.
gcloud
Para crear una tarea de Cloud Run sin un conector desde Google Cloud CLI, sigue estos pasos:
Actualiza los componentes de
gclouda la última versión:gcloud components update
Asegúrate de que la API de Compute Engine esté habilitada en tu proyecto:
gcloud services enable compute.googleapis.com
Crea una tarea 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
Sustituye:
- JOB_NAME por el nombre de tu tarea de Cloud Run.
IMAGE_URL: una referencia a la imagen de contenedor (por ejemplo,us-docker.pkg.dev/cloudrun/container/job:latest)- NETWORK con el nombre de tu 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.
- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma 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 tarea puede tener diferentes etiquetas de red, 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.private-ranges-only: envía solo tráfico a direcciones internas a través de la red de VPC.
- REGION con una región para tu tarea.
Para verificar que la tarea está en tu red de VPC, ejecuta el siguiente comando:
gcloud run jobs describe JOB_NAME \ --region=REGION
Sustituye:
JOB_NAMEcon el nombre de tu trabajo.REGIONcon la región de tu tarea que has especificado en el paso anterior.
El resultado debe contener el nombre de tu red y de tu subred, por ejemplo:
VPC network: Network: default Subnet: default
Ahora puedes ejecutar tu tarea de Cloud Run y enviar solicitudes desde la tarea a cualquier recurso de la red de VPC, según lo permitan tus reglas de cortafuegos.
YAML
Si vas a crear una tarea, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:
gcloud run jobs describe JOB --format export > job.yaml
Actualiza los siguientes atributos:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_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:
- JOB_NAME por el nombre de tu tarea de Cloud Run. Los nombres de las tareas deben tener 49 caracteres como máximo y deben ser únicos por región y proyecto.
- REGION con la región de tu tarea de Cloud Run, que debe coincidir con la región de tu subred.
- NETWORK con el nombre de tu 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.
- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma 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 tarea puede tener diferentes etiquetas de red, 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.private-ranges-only: envía solo tráfico a direcciones internas a través de la red de VPC.
- IMAGE por la URL de la imagen de contenedor de tu tarea.
Crea o actualiza la tarea con el siguiente comando:
gcloud run jobs replace job.yaml
Conectar un grupo de trabajadores a una red de VPC
La VPC directa permite que tu grupo de trabajadores de Cloud Run envíe o reciba tráfico hacia o desde una VPC. Cada instancia de grupo de trabajadores recibe una dirección IP privada en la red y la subred configuradas.
A diferencia de los servicios o las tareas, la conectividad de VPC directa para los grupos de trabajadores permite la salida y la entrada. Esto significa que las instancias del grupo de trabajadores pueden acceder a los recursos de la red de VPC, y que los recursos de la red de VPC también pueden acceder a una instancia del grupo de trabajadores mediante su dirección IP. Consulta cómo puede una instancia obtener sus direcciones IP privadas mediante el servidor de metadatos.
También puedes añadir etiquetas de red directamente en las revisiones de grupos de trabajadores de Cloud Run con salida de VPC directa para disfrutar de una seguridad de red más granular, como aplicar reglas de cortafuegos de VPC.
Puedes configurar la salida de VPC directa mediante la consola de Google Cloud , Google Cloud CLI o YAML.
Consola
Selecciona Grupos de trabajadores en el menú y haz clic en Desplegar contenedor para configurar un nuevo grupo de trabajadores. Si vas a configurar un grupo de trabajadores ya creado, haz clic en él y, a continuación, en Editar y desplegar nueva revisión.
Si vas a configurar un nuevo grupo de trabajadores, rellena la página inicial del grupo de trabajadores y, a continuación, haz clic en Contenedores, volúmenes, redes y seguridad para ampliar la página de configuración de los grupos de trabajadores.
Haz clic en la pestaña Redes.
Selecciona Conectar a una VPC.
Haz clic en Crear o en Desplegar.
Ahora puedes enviar solicitudes desde tu pool de trabajadores de Cloud Run a cualquier recurso de la red de VPC, según lo permitan tus reglas de cortafuegos.
gcloud
Para desplegar un grupo de trabajadores de Cloud Run sin un conector desde Google Cloud CLI, sigue estos pasos:
Actualiza los componentes de
gclouda la última versión:gcloud components update
Asegúrate de que la API de Compute Engine esté habilitada en tu proyecto:
gcloud services enable compute.googleapis.com
Despliega tu grupo de trabajadores de Cloud Run con el siguiente comando:
- Para la salida de VPC directa:
gcloud run worker-pools deploy WORKER_POOL \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --region=REGION
- Para el tráfico de entrada de VPC directa:
gcloud run worker-pools deploy WORKER_POOL \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --region=REGION
Sustituye:
WORKER_POOLcon el nombre de tu grupo de workers de Cloud Run. Los nombres de los grupos de trabajadores deben tener 49 caracteres o menos, ser únicos por región y proyecto, y no coincidir con el nombre de un servicio que ya exista en tu proyecto. Si el grupo de trabajadores aún no existe, este comando lo creará durante el despliegue. Puedes omitir este parámetro por completo, pero se te pedirá el nombre del grupo de trabajadores si lo omites.IMAGE_URL: una referencia a la imagen de contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latestNETWORKcon el nombre de tu 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.- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma subred.
- Opcional (solo salida de VPC directa):
NETWORK_TAG_NAMEScon los nombres separados por comas de las etiquetas de red que quieras asociar a un grupo de trabajadores. En el caso de los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión de un grupo de trabajadores puede tener diferentes etiquetas de red, comonetwork-tag-2. REGIONcon una región para tu grupo de trabajadores.
Para verificar que tu grupo de trabajadores está en tu red de VPC, ejecuta el siguiente comando:
gcloud run worker-pools describe WORKER_POOL \ --region=REGION
Sustituye:
WORKER_POOLpor el nombre de tu grupo de trabajadores.REGIONcon la región de tu grupo de trabajadores que hayas especificado en el paso anterior.
La salida debe contener el nombre de tu red, la subred y el ajuste de salida; por ejemplo:
VPC access: Network: default Subnet: subnet Egress: private-ranges-only
Ahora puedes enviar solicitudes desde tu pool de trabajadores de Cloud Run a cualquier recurso de la red de VPC, según lo permitan tus reglas de cortafuegos.
YAML
Si vas a crear un nuevo grupo de trabajadores, sáltate este paso. Si vas a actualizar un grupo de trabajadores, descarga su configuración YAML:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
Actualiza los siguientes atributos:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL 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_URL
Haz los cambios siguientes:
- WORKER_POOL: el nombre de tu grupo de trabajadores de Cloud Run.
- REGION: la región de tu worker pool de Cloud Run, que debe coincidir con la región de tu subred.
- NETWORK: el nombre de tu 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.
- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma subred.
- Opcional (solo salida de VPC directa): NETWORK_TAG_NAMES: los nombres de las etiquetas de red que quieres asociar al grupo de workers. En el caso de los grupos de trabajadores, las etiquetas de red se especifican a nivel de revisión. Cada revisión de grupo de trabajadores puede tener diferentes etiquetas de red, como
network-tag-2. - EGRESS_SETTING: un valor de configuración de salida.
all-traffic: envía todo el tráfico saliente a través de la red de VPC.private-ranges-only: envía solo tráfico a direcciones internas a través de la red de VPC.
IMAGE_URL: una referencia a la imagen de contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest.
También puedes especificar más ajustes de configuración, como variables de entorno o límites de memoria.
Crea o actualiza el grupo de trabajadores con el siguiente comando:
gcloud run worker-pools replace worker-pool.yaml
El comando
gcloud run worker-pools replaceusa de forma predeterminada el archivoworker-pool.yamlsi está presente.
Conectar una instancia a una red de VPC
La VPC directa permite que tu instancia de Cloud Run envíe o reciba tráfico de una red de VPC. Cada instancia recibe una dirección IP privada en la red y la subred configuradas.
A diferencia de los servicios o las tareas, la conectividad de VPC directa para instancias permite tanto la salida como la entrada. Esto significa que las instancias pueden acceder a los recursos de la red de VPC y que los recursos de la red de VPC también pueden acceder a una instancia mediante su dirección IP privada. Consulta cómo puede una instancia obtener sus direcciones IP privadas mediante el servidor de metadatos.
También puedes añadir etiquetas de red directamente en instancias de Cloud Run con salida de VPC directa para disfrutar de una seguridad de red más granular, como aplicar reglas de cortafuegos de VPC.
Puedes configurar una VPC directa para una instancia mediante la CLI de Google Cloud o YAML:
gcloud
Para desplegar una instancia de Cloud Run con VPC directa desde la CLI de Google Cloud, sigue estos pasos:
Actualiza los componentes de
gclouda la última versión:gcloud components update
Asegúrate de que la API de Compute Engine esté habilitada en tu proyecto:
gcloud services enable compute.googleapis.com
Despliega tu instancia de Cloud Run con el siguiente comando:
- Para la salida de VPC directa:
gcloud beta run instances deploy INSTANCE_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --region=REGION
- Para el tráfico de entrada de VPC directa:
gcloud beta run instances deploy INSTANCE_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --region=REGION
Haz los cambios siguientes:
INSTANCE_NAME: el nombre de tu instancia de Cloud Run.IMAGE_URL: una referencia a la imagen de contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest.NETWORK: el nombre de tu 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.- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma subred.
- Opcional (solo para la salida de VPC directa):
NETWORK_TAG_NAMES: los nombres separados por comas de las etiquetas de red que quieras asociar a la instancia. REGION: la región de tu instancia.
Para verificar que tu instancia está en tu red de VPC, ejecuta el siguiente comando:
gcloud beta run instances describe INSTANCE_NAME \ --region=REGION
YAML
Si vas a crear una instancia, sáltate este paso. Si vas a actualizar una instancia, descarga su configuración YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Actualiza las anotaciones
run.googleapis.com/network-interfacesyrun.googleapis.com/vpc-access-egressenmetadata.annotations:apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE_NAME labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/launch-stage: BETA 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_URL
Crea o actualiza la instancia con el siguiente comando:
gcloud beta run instances replace instance.yaml
Obtener direcciones IP privadas con el servidor de metadatos
Puedes acceder a direcciones IP privadas entre instancias de tu red de VPC para que la comunicación interna sea segura. Para obtener la dirección IP privada de una instancia de un grupo de trabajadores o de Cloud Run del servidor de metadatos, ejecuta los siguientes comandos en tu contenedor:
Para obtener la dirección IPv4, envía una solicitud al servidor de metadatos en el endpoint
/computeMetadata/v1/instance/network-interfaces/0/ip:curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip" -H "Metadata-Flavor: Google"Para obtener la dirección IPv6, crea tu instancia con una subred de doble pila y envía una solicitud al servidor de metadatos en el endpoint
/computeMetadata/v1/instance/network-interfaces/0/ipv6:curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ipv6" -H "Metadata-Flavor: Google"Para verificar que tu instancia de grupo de trabajadores o de Cloud Run está vinculada a una red de VPC, consulta las siguientes rutas de metadatos de interfaz de red:
# Verify the existence of the network interface directory curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/" -H "Metadata-Flavor: Google" # Verify the existence of the first network interface curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/" -H "Metadata-Flavor: Google"
Gestionar errores del servidor de metadatos
El servidor de metadatos devuelve un error 404: Not Found en los siguientes casos:
- Si consultas una dirección IPv6 en una subred que solo admite IPv4.
Si no conectas tu instancia de worker pool o de Cloud Run a una red de VPC. En este caso, el servidor de metadatos devuelve un error para las siguientes rutas:
/computeMetadata/v1/instance/network-interfaces/computeMetadata/v1/instance/network-interfaces/0/computeMetadata/v1/instance/network-interfaces/0/ip/computeMetadata/v1/instance/network-interfaces/0/ipv6
Configurar doble pila (IPv4 e IPv6)
Para añadir una subred de doble pila con un intervalo de IPv6 en un recurso de Cloud Run, consulta Configurar doble pila.
Restringir el acceso con reglas de cortafuegos
Restringe el acceso a los recursos de una red de VPC mediante reglas de cortafuegos de VPC. Añade estas restricciones mediante una de las siguientes estrategias:
- Crea una regla de cortafuegos de entrada que haga referencia a tu servicio o tarea mediante el intervalo de IPs de la subred.
Crea una regla de cortafuegos de salida que haga referencia a tu servicio o tarea.
En la regla de cortafuegos de salida, haz referencia a tu servicio o tarea mediante la identidad de servicio de la cuenta de servicio vinculada, el intervalo de IPs de la subred o las etiquetas de red asociadas.
Etiquetas de red para la salida
Añade una capa adicional de seguridad de redes usando etiquetas de red en las reglas de cortafuegos de salida.
Consola
Para asociar etiquetas de red a un servicio o tarea:
En la consola de Google Cloud , ve a la página Cloud Run.
Haz clic en el servicio o la tarea con los que quieras asociar las etiquetas de red y, a continuación, haz clic en Editar para las tareas.
Haz clic en la pestaña Redes para los servicios o en la pestaña Conexiones para los empleos.
Asegúrate de que has seleccionado Conectar a una VPC para el tráfico saliente y Enviar tráfico directamente a una VPC.
En el campo Subred, selecciona la subred de la que tu servicio recibe direcciones IP. Puedes desplegar o ejecutar varios servicios o tareas en la misma subred.
En el campo Etiquetas de red, introduce los nombres de las etiquetas de red que quieras asociar a tu servicio o tarea.
En el caso de los trabajos, haz clic en Actualizar. En el caso de los servicios, haz clic en Ver diferencias y volver a desplegar y, a continuación, en Desplegar cambios.
En el caso de los servicios, cada revisión puede tener un conjunto de etiquetas de red diferente, ya que las etiquetas de red se especifican a nivel de revisión. En el caso de las tareas, una ejecución de tarea tiene las mismas etiquetas de red que tenía la tarea cuando se creó la ejecución de la tarea.
gcloud
Para asociar etiquetas de red a un servicio o un 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
Haz los cambios siguientes:
- SERVICE_JOB_NAME con el nombre de tu servicio o trabajo.
- IMAGE_URL con la URL de la imagen del servicio o del trabajo.
- NETWORK con el nombre de tu red de VPC.
- SUBNET por el nombre de tu subred. Especifica una red de VPC, una subred o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red. Puedes desplegar o ejecutar varios servicios, tareas, grupos de trabajadores o instancias en la misma subred.
- NETWORK_TAG_NAMES con el nombre de tu etiqueta de red o una lista separada por comas de etiquetas de red.
- REGION con el nombre de tu región.
En el caso de los servicios, cada revisión puede tener un conjunto de etiquetas de red diferente, ya que las etiquetas de red se especifican a nivel de revisión. En el caso de las tareas, una ejecución de tarea tiene las mismas etiquetas de red que tenía la tarea cuando se creó la ejecución de la tarea.
Desconectar un recurso de Cloud Run
En función del recurso de Cloud Run que tengas, consulta las instrucciones de una de las siguientes secciones:
- Desconectar un servicio
- Desconectar un trabajo
- Desconectar un grupo de trabajadores
- Desconectar una instancia
Desconectar un servicio
Consola
Para quitar tu servicio de la red de VPC, sigue estos pasos:
Haz clic en el servicio.
Haz clic en la pestaña Redes.
Desmarca Conectarse a una VPC para el tráfico saliente.
Haz clic en Ver diferencias y volver a desplegar y, a continuación, en Desplegar cambios.
Para verificar que tu servicio ya no está en tu red de VPC, 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, sigue estos pasos:
Haz clic en el servicio que contiene las etiquetas de red que quieres quitar.
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 Ver diferencias y volver a desplegar y, a continuación, en Desplegar cambios.
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 mantener el servicio conectado a la red de VPC, 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, sigue estos pasos:
Descarga la configuración YAML del servicio:
gcloud run services describe SERVICE_NAME --format export > service.yaml
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: los nombres de las etiquetas de red si las has asociado a un servicio.
Ejecuta el siguiente comando para desplegar la revisión del servicio:
gcloud run services replace service.yaml
Para quitar solo las etiquetas de red y mantener el servicio conectado a la red de VPC, sigue estos pasos:
Descarga la configuración YAML del servicio:
gcloud run services describe SERVICE_NAME --format export > service.yaml
Quita la variable
tagsdel contenido del archivoservice.yaml, dejando las variablesnetworkysubnetwork, 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.
Ejecuta el siguiente comando para desplegar la revisión del servicio:
gcloud run services replace service.yaml
Desconectar una tarea
Consola
Para quitar tu tarea de la red de VPC, sigue estos pasos:
Haz clic en la tarea que quieras quitar y, a continuación, en Editar y desplegar nueva revisión.
Haz clic en la pestaña Conexiones.
Desmarca Conectarse a una VPC para el tráfico saliente.
Haz clic en Actualizar.
Para verificar que tu tarea ya no está en tu red de VPC, 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, sigue estos pasos:
Haz clic en la tarea que contiene las etiquetas de red que quieres 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 tarea.
Haz clic en Actualizar.
gcloud
Para quitar tu tarea 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 mantener el trabajo conectado a la red de VPC, 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 tarea de la red de VPC, sigue estos pasos:
Descarga la configuración de YAML de la tarea:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Quita el siguiente contenido de tu archivo
job.yaml:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
Haz los cambios siguientes:
- NETWORK: el nombre de tu red de VPC.
- SUBNET: el nombre de tu subred.
- Opcional: NETWORK_TAG_NAMES con los nombres de las etiquetas de red si las habías asociado a un trabajo.
Actualiza la tarea ejecutando 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, sigue estos pasos:
Descarga la configuración de YAML de la tarea:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Quita la variable
tagsdel contenido del archivojob.yaml, dejando las variablesnetworkysubnetwork, como se muestra en el siguiente ejemplo:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'
Haz los cambios siguientes:
- NETWORK: el nombre de tu red de VPC.
- SUBNET: el nombre de tu subred.
Actualiza la tarea ejecutando el siguiente comando:
gcloud run jobs replace job.yaml
Desconectar un grupo de trabajadores
gcloud
Para quitar tu grupo de trabajadores de la red de VPC, ejecuta el siguiente comando:
gcloud run worker-pools update WORKER_POOL --region=REGION \ --clear-network
Para quitar solo las etiquetas de red y mantener el grupo de trabajadores conectado a la red de VPC, ejecuta el siguiente comando:
gcloud run worker-pools update WORKER_POOL --region=REGION \ --clear-network-tags
Haz los cambios siguientes:
- WORKER_POOL: el nombre de tu grupo de trabajadores de Cloud Run.
- REGION: la región de tu pool de workers de Cloud Run.
Desconectar una instancia
gcloud
Para quitar tu instancia de la red de VPC, ejecuta el siguiente comando:
gcloud beta run instances update INSTANCE_NAME \ --region=REGION \ --clear-network
Para quitar solo las etiquetas de red y mantener la instancia conectada a la red de VPC, ejecuta el siguiente comando:
gcloud beta run instances update INSTANCE_NAME \ --region=REGION \ --clear-network-tags
Haz los cambios siguientes:
INSTANCE_NAME: el nombre de tu instancia de Cloud Run.REGION: la región de tu instancia de Cloud Run.
YAML
Para quitar tu instancia de la red de VPC, sigue estos pasos:
Descarga la configuración de YAML de la instancia:
gcloud beta run instances describe INSTANCE_NAME --format export > instance.yaml
Quita la anotación
run.googleapis.com/network-interfacesdemetadata.annotationsen tu archivoinstance.yaml.Actualiza la instancia ejecutando el siguiente comando:
gcloud beta run instances replace instance.yaml
Solución de problemas
No se puede eliminar la subred
Para eliminar una subred, primero debes eliminar o volver a desplegar todos los recursos que la usen. Si Cloud Run usa una subred, desconecta el servicio, el trabajo, el grupo de trabajadores o la instancia de Cloud Run de la red de VPC o muévelo a otra subred antes de eliminar la subred.
La subred de salida de VPC directa se queda sin direcciones IPv4
Se produce el siguiente error al intentar desplegar:
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 de VPC se queda sin direcciones IPv4, se registra en Cloud Logging. 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
No puedes eliminar manualmente una dirección reservada. Se produce el siguiente error cuando intentas eliminar una dirección IP asignada a Cloud Run:
The address resource 'ADDRESS_NAME' is already being used by '//serverless.googleapis.com/projects/PROJECT_ID/locations/REGION/addressReservations/ADDRESS_NAME'
Para ver qué direcciones IP ha asignado Cloud Run, ve a la página Direcciones IP de laGoogle Cloud consola y busca las direcciones en las que la columna En uso por tenga el valor Sin servidor.
También puedes ejecutar el siguiente comando desde Google Cloud CLI:
gcloud compute addresses list --filter="purpose=SERVERLESS"
Problemas con la MTU personalizada
Si tienes problemas con una MTU personalizada, asegúrate de usar el ajuste de MTU predeterminado de Cloud Run.