En esta página, se describe cómo establecer la cantidad máxima de instancias que se pueden usar en tu servicio de Cloud Run con el comportamiento predeterminado de ajuste de escala automático de Cloud Run. Para ajustar la escala de tu servicio de forma manual, consulta Ajuste de escala manual.
Especificar un máximo de instancias en Cloud Run te permite limitar el escalamiento del servicio en respuesta a solicitudes entrantes, aunque esta configuración máxima se puede exceder durante un período breve debido a circunstancias como los aumentos de tráfico.
Puedes usar esta configuración como una forma de controlar tus costos o limitar la cantidad de conexiones a un servicio de apoyo, como una base de datos.
Para obtener información sobre los límites máximos de instancias que podrían aplicarse a tu servicio, consulta Límites máximos de instancias.
Para obtener más información sobre cómo Cloud Run realiza el ajuste de escala automático de las instancias de contenedor, consulta Ajuste de escala automático de instancias.
Aplica instancias máximas a nivel de servicio en comparación con a nivel de revisión
Puedes configurar el número máximo de instancias a nivel de servicio o de revisión. Google recomienda que uses instancias máximas a nivel de servicio para limitar la cantidad de instancias de un servicio, a menos que tengas una necesidad específica de limitar las instancias a nivel de revisión. De forma predeterminada, Cloud Run establece 100 instancias para cada revisión. Para permitir que tu servicio escale a más instancias, modifica este valor.
Cuando se aplican instancias máximas, la configuración entra en vigencia de la siguiente manera:
- Nivel de servicio: de inmediato
- Nivel de revisión: cuando se implementa la revisión
Revisiones etiquetadas e instancias máximas a nivel de servicio
Las revisiones etiquetadas se inician, pero solo se consideran en las instancias máximas del nivel de servicio si forman parte de una división del tráfico.
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.
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 Google Cloud las APIs, 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 permisos de implementación y administra el acceso.
Consideraciones de costo
La configuración de instancias máximas te permite establecer un límite de seguridad de costos para administrar los costos. Si estableces una cantidad máxima más alta, se prioriza la disponibilidad, pero se introducen posibles riesgos de facturación debido a aumentos de tráfico inesperados o configuraciones incorrectas. Como protección de costos, configura este parámetro a nivel de servicio cuando implementes tu servicio por primera vez. Te sugerimos que comiences con un valor máximo de instancias de 3 para proteger tu presupuesto de aumentos inesperados.
Revisa los precios de Cloud Run o estima los costos con la calculadora de precios para obtener más información. Para obtener herramientas adicionales de control de costos, consulta las cuotas de asignación de recursos o los presupuestos y alertas de facturación.
Configura instancias máximas a nivel de servicio
Puedes cambiar la configuración de instancias máximas mediante la Google Cloud consola, Google Cloud CLI, YAML o Terraform cuando creas un servicio nuevo o implementas una revisión nueva.
Console
En la Google Cloud consola, ve a la página Servicios de Cloud Run:
Si quieres configurar un servicio nuevo, haz clic en Implementar contenedor para mostrar el formulario Crear servicio. Ubica el formulario Escalamiento del servicio :
Si quieres configurar un servicio existente, haz clic en el servicio para mostrar su panel de detalles y, luego, haz clic en el Editar la configuración de escalamiento a nivel de servicio en la parte superior derecha del panel de detalles.
En el campo Cantidad máxima de instancias, especifica la cantidad máxima requerida de instancias de contenedor con un valor de número entero de
1al límite máximo posible para tu servicio. Para quitar el límite a nivel de servicio, borra el valor que estableciste. De esta manera, se restablecerá la configuración predeterminada.Haz clic en Crear para un servicio nuevo o en Implementar en un servicio existente.
gcloud
Puedes actualizar la cantidad máxima de instancias de un servicio determinado mediante el siguiente comando:
gcloud run services update SERVICE --max MAX-VALUE
Reemplaza lo siguiente:
- SERVICE: el nombre del servicio
- MAX-VALUE: la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de
1al límite máximo posible para tu servicio. Para quitar el límite a nivel de servicio, borra el valor que estableciste. De esta manera, se restablecerá la configuración predeterminada.
También puedes configurar la cantidad máxima de instancias durante la implementación mediante el siguiente comando:
gcloud run deploy --image IMAGE_URL --max MAX-VALUE
Reemplaza lo siguiente:
- IMAGE_URL: una referencia a la imagen del 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. - MAX-VALUE: la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de
1al límite máximo.
YAML
Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.
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
Actualiza el atributo
run.googleapis.com/maxScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/maxScale: 'MAX-INSTANCE'
Reemplaza lo siguiente:
- SERVICE: el nombre de tu servicio de Cloud Run
- MAX-INSTANCE: la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de
1al límite máximo posible para tu servicio Para quitar el límite a nivel de servicio, borra el valor que estableciste. De esta manera, se restablecerá la configuración predeterminada.
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
El comando
gcloud run services replaceusa de forma predeterminada el archivoservice.yamlsi está presente.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a ungoogle_cloud_run_v2_service
recurso en la configuración de Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
scaling {
max_instance_count = MAX_INSTANCE
}
template {
containers {
image = "IMAGE_URL"
}
}
}
Reemplaza lo siguiente:
- SERVICE: el nombre de tu servicio de Cloud Run.
- REGION: la Google Cloud región, por ejemplo,
europe-west1. - MAX_INSTANCE: la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de
1al límite máximo. - IMAGE_URL: una referencia a la imagen del 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
Visualiza las instancias máximas a nivel de servicio
Para ver la configuración actual de instancias máximas a nivel de servicio para tu servicio de Cloud Run, sigue estos pasos:
Console
En la Google Cloud consola, ve a la página Servicios de Cloud Run:
Haz clic en ese servicio para abrir el panel Detalles del servicio.
Visualiza la configuración actual en la parte superior derecha del panel de detalles del servicio, junto a Escalamiento.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busca el valor de Escalamiento: Automático (mín.: MIN_VALUE, máx.: MAX_VALUE) en la configuración que se muestra.
Configura instancias máximas a nivel de revisión
Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.
De forma predeterminada, las revisiones de Cloud Run están configuradas para escalar verticalmente hasta un máximo de 100 instancias.
Puedes cambiar la configuración de instancias máximas mediante la Google Cloud consola, Google Cloud CLI o un archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva.
Console
En la consola Google Cloud , ve a Cloud Run:
Selecciona Servicios en el menú de navegación de Cloud Run y haz clic en Implementar contenedor para configurar un servicio nuevo. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en Implementar y editar la nueva revisión.
Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedores, Herramientas de redes y seguridad para expandir la página de configuración del servicio.
Haz clic en la pestaña Contenedor.
gcloud
Puedes actualizar la cantidad máxima de instancias de un servicio determinado mediante el siguiente comando:
gcloud run services update SERVICE --max-instances MAX-VALUE
Reemplaza lo siguiente:
- SERVICE: el nombre del servicio
- MAX-VALUE: la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de
1al límite máximo.
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
Actualiza el atributo
autoscaling.knative.dev/maxScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX-INSTANCE' name: REVISION
Reemplaza lo siguiente:
- SERVICE: el nombre de tu servicio de Cloud Run
- MAX-INSTANCE: la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de
1al límite máximo. - REVISION por un nombre de revisión nuevo o bórralo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir con los siguientes criterios:
- Comienza con
SERVICE- - Solo contiene letras minúsculas, números y
- - No termina con
- - No supera los 63 caracteres
- Comienza con
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
El comando
gcloud run services replaceusa de forma predeterminada el archivoservice.yamlsi está presente.
Visualiza la configuración máxima de instancias a nivel de revisión
Para ver la configuración actual de instancias máximas a nivel de revisión para tu servicio de Cloud Run, sigue estos pasos:
Console
En la Google Cloud consola, ve a la página Servicios de Cloud Run:
Haz clic en ese servicio para abrir el panel Detalles del servicio.
Haz clic en la pestaña Revisiones.
En el panel de detalles a la derecha, visualiza la configuración de Cantidad máxima de instancias de revisión que aparece en la pestaña Contenedor.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busca el valor de Cantidad máxima de instancias: en la configuración que se muestra.
Usa instancias mínimas o máximas a nivel de servicio y de revisión
En la siguiente tabla, se muestra el comportamiento si combinas las instancias máximas a nivel de servicio y las instancias mínimas o máximas a nivel de revisión:
| Configuración a nivel de servicio | Configuración a nivel de revisión | Comportamiento |
|---|---|---|
| Se establecen las instancias máximas a nivel de servicio. | Se establecen las instancias máximas a nivel de revisión. | El límite máximo de instancias efectivo es el valor menor entre las instancias máximas a nivel de revisión y las instancias máximas a nivel de servicio. |
| Se establecen las instancias máximas a nivel de servicio. | Se establecen las instancias mínimas a nivel de revisión. | Si las instancias máximas a nivel de servicio se establecen en un valor inferior a las instancias mínimas a nivel de revisión, la revisión inicia instancias hasta las instancias máximas a nivel de servicio y no alcanza las instancias mínimas a nivel de revisión configuradas. |
Usa instancias máximas de nivel de servicio con división de tráfico
Si usas la división del tráfico, las instancias máximas a nivel de servicio se dividen entre las revisiones según la proporción de la división del tráfico. Por ejemplo, si las instancias máximas a nivel de servicio equivalen a 100, una división del tráfico de 50/50 asigna 50 instancias máximas a nivel de servicio a cada revisión. En la siguiente tabla, se muestra una situación de configuración de muestra:
| Configuración de ejemplo | Comportamiento resultante |
|---|---|
Se establecen las instancias máximas a nivel de servicio (situación en la que no hay configuración a nivel de revisión): 100
|
Se asigna una parte de las instancias máximas a nivel de servicio a cada revisión. Las instancias máximas efectivas para cada revisión se fijan según la división del tráfico. Las instancias máximas para la revisión A son 10, para la revisión B son 10 y para la revisión C son 80. |