Ambient Networking brinda una experiencia de redes de recursos simplificada integrada en Cloud Run. Proporciona a tus recursos un plano de datos completamente administrado para quitar la carga operativa de compilar y mantener proxies personalizados. También abstrae los conceptos de malla de servicios, por lo que obtienes funciones de redes avanzadas sin aprender ni configurar una malla.
Cuando habilitas Ambient Networking, el tráfico pasa sin cambios de forma predeterminada para que el tráfico HTTP y TCP existente siga funcionando. Habilitar las redes de ambiente por sí solas no cambia el comportamiento de tu recurso. Como base, las redes de Ambient Networking te permiten habilitar las capacidades que se describen en la siguiente sección.
Caso de uso
Ambient Networking es la base de las funciones de redes avanzadas en Cloud Run. Después de habilitar Ambient Networking, puedes optar por usar Agent Gateway en Cloud Run. Esta función rige el tráfico de agentes con políticas de acceso y seguridad que tu organización administra de forma centralizada.
Arquitectura
Ambient Networking ejecuta un contenedor sidecar de Envoy completamente administrado dentro de cada instancia de contenedor de tu recurso de Cloud Run, junto con el contenedor de tu aplicación. El archivo adicional intercepta el tráfico de red de la instancia y aplica la política de enrutamiento y seguridad que Cloud Run le distribuye.
Permisos de Ambient Networking
Ambient Networking admite un alcance global y uno regional. El alcance determina si el sidecar se conecta a un plano de enrutamiento global o regional:
- Regional (predeterminado): Cloud Run conecta el archivo de complemento a un plano de enrutamiento regional, lo que limita las políticas de enrutamiento y seguridad a los destinos dentro de la región de tu servicio. Este permiso admite los requisitos de residencia de datos (DRZ) para los datos en reposo, en uso y en tránsito. Si no especificas un permiso, Ambient Networking usa el permiso regional.
- Global: Cloud Run conecta el archivo de complemento a un plano de enrutamiento global, lo que le permite enrutar el tráfico a destinos en cualquier región.
Cada característica que usa Ambient Networking requiere un alcance específico:
| Función | Alcance global | Alcance regional |
|---|---|---|
| Agent Gateway en Cloud Run | No compatible | Admitido |
Limitaciones
Se aplican las siguientes limitaciones a Ambient Networking:
- No se admite el tráfico UDP. Ambient networking solo admite tráfico HTTP y TCP.
- Las solicitudes entrantes no admiten HTTP/2 de extremo a extremo. Para obtener más detalles, consulta Problemas conocidos.
- El permiso regional no admite redes de VPC que resuelvan
*.googleapis.comen direcciones IP del Acceso privado a Google. Para obtener más detalles, consulta Problemas conocidos. - No se admite el entorno de ejecución de primera generación. Si no especificas un entorno de ejecución, Cloud Run usa la segunda generación.
- Las instancias de contenedor tardan más en iniciarse. Para obtener más detalles, consulta Problemas conocidos.
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Habilita las APIs de Cloud Run, Network Services y Traffic Director, si aún no están habilitadas.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.-
Aumenta el límite de CPU del recurso de Cloud Run en 1 CPU virtual y su límite de memoria en 1 GiB. Si el nuevo límite de CPU no es un valor admitido, usa el siguiente valor admitido más alto. El sidecar de ambient comparte la CPU y la memoria de tu instancia de contenedor, por lo que este aumento garantiza que tu aplicación conserve los recursos que necesita.
-
Lee la página de precios de Cloud Run para conocer el uso del sidecar de Ambient Networking. La facturación de las funciones de ambiente no se aplica de manera forzosa durante la versión preliminar.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y, luego, implementar los servicios de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Desarrollador de Cloud Run (
roles/run.developer) en el servicio de Cloud Run - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la identidad del servicio
Si implementas un servicio o una función desde el código fuente, también debes tener roles adicionales otorgados en tu proyecto y en la cuenta de servicio de Cloud Build.
La identidad de servicio del recurso de Cloud Run también debe tener los siguientes roles:
- Cliente de Traffic Director (
roles/trafficdirector.client) - Agente de Cloud Trace (
roles/cloudtrace.agent)
Para otorgar estos roles a la identidad de servicio, usa gcloud:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/trafficdirector.client" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"
Reemplaza lo siguiente:
- PROJECT_ID: Es el ID del proyecto de Google Cloud .
- RUN_CLIENT_SA: Es el nombre de la cuenta de servicio adjunta a tu servicio de Cloud Run.
Si la identidad del servicio no tiene estos roles, el recurso de Cloud Run se implementa de todos modos, pero las funciones que usan Ambient Networking no funcionan.
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu servicio de Cloud Run interactúa con las APIs deGoogle Cloud , como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta los permisos de implementación y cómo administrar el acceso.
Configura Ambient Networking
Configura Ambient Networking con gcloud o un archivo YAML.
gcloud
Para habilitar Ambient Networking en un servicio nuevo, pasa la marca
--ambient-networkingy, de manera opcional, la marca--ambient-scope:gcloud beta run deploy SERVICE \ --image=IMAGE_URL \ --ambient-networking \ --ambient-scope=SCOPE \ --region=REGION
Para habilitar Ambient Networking en un servicio existente, pasa las mismas marcas al comando
gcloud beta run services update, que implementa una revisión nueva con Ambient Networking habilitado:gcloud beta run services update SERVICE \ --ambient-networking \ --ambient-scope=SCOPE \ --region=REGION
Para inhabilitar Ambient Networking, pasa la marca
--no-ambient-networking:gcloud beta run services update SERVICE \ --no-ambient-networking \ --region=REGION
Reemplaza lo siguiente:
- SERVICE: el nombre de tu servicio de Cloud Run.
IMAGE_URL: una referencia a la imagen de contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- SCOPE: Es el permiso de Ambient Networking, ya sea
globaloregional. - REGION: Es la región de tu servicio.
YAML
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
Agrega la anotación
run.googleapis.com/ambient-networkingy, de forma opcional, la anotaciónrun.googleapis.com/ambient-scope:spec: template: metadata: annotations: run.googleapis.com/ambient-networking: 'true' run.googleapis.com/ambient-scope: SCOPE
Reemplaza SCOPE por el permiso de Ambient Networking, ya sea
globaloregional. Para inhabilitar Ambient Networking, establecerun.googleapis.com/ambient-networkingen'false'y quita la anotaciónrun.googleapis.com/ambient-scope.Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
El comando
gcloud run services replaceusa el archivoservice.yamlde forma predeterminada si está presente.
Consulta la configuración de Ambient Networking
Para ver la configuración de red actual de Ambient Networking de tu servicio de Cloud Run, sigue estos pasos:
Console
En la consola de Google Cloud , ve a la página Servicios de Cloud Run:
Haz clic en el servicio para abrir la página Detalles del servicio.
Haz clic en la pestaña Redes.
En la tarjeta Ambient Networking, consulta el parámetro de configuración Permiso.
gcloud
Usa el siguiente comando:
gcloud beta run services describe SERVICE \ --region=REGION
Busca las anotaciones
run.googleapis.com/ambient-networkingyrun.googleapis.com/ambient-scopeen la configuración que se muestra.
¿Qué sigue?
- Obtén más información sobre Agent Gateway en Cloud Run.
- Aprende a configurar las funciones de Agent Platform para Cloud Run.
- Obtén más información sobre la autenticación de servicio a servicio en Cloud Run.
- Aprende a realizar un seguimiento de las solicitudes con Cloud Trace.