En esta página se describe cómo definir el número máximo de instancias que se pueden usar en tu servicio de Cloud Run mediante el comportamiento de escalado automático de Cloud Run predeterminado. Para escalar tu servicio manualmente, consulta Escalado manual.
Especificar el número máximo de instancias en Cloud Run te permite limitar el escalado de tu servicio en respuesta a las solicitudes entrantes, aunque este ajuste máximo se puede superar durante un breve periodo debido a circunstancias como los picos de tráfico.
Puedes usar este ajuste para controlar los costes o limitar el número de conexiones a un servicio de respaldo, como una base de datos.
Para obtener información sobre los límites máximos de instancias que se pueden aplicar a tu servicio, consulta Límites máximos de instancias.
Para obtener más información sobre cómo Cloud Run autoescala las instancias de contenedor, consulta el artículo Autoescalado de instancias.
Aplicar el número máximo de instancias a nivel de servicio en lugar de 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 el número máximo de instancias a nivel de servicio, a menos que tengas una necesidad específica de limitar las instancias a nivel de revisión.
Al aplicar el número máximo de instancias, los ajustes se aplican de la siguiente manera:
- Nivel de servicio: inmediatamente
- Nivel de revisión: al desplegar la revisión
Revisiones etiquetadas e instancias máximas a nivel de servicio
Las revisiones etiquetadas se inician, pero solo se tienen en cuenta para el número máximo de instancias a nivel de servicio si forman parte de una división del tráfico.
Roles obligatorios
Para obtener los permisos que necesitas para configurar e implementar servicios de Cloud Run, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Desarrollador de Cloud Run (
roles/run.developer
) en el servicio Cloud Run -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad de servicio
Si vas a desplegar un servicio o una función a partir de código fuente, también debes tener otros roles concedidos en tu proyecto y en la cuenta de servicio de Cloud Build.
Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu servicio de Cloud Run interactúa con APIs, como las bibliotecas de cliente de Cloud, consulta la guía de configuración de la identidad del servicio.Google Cloud Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.
Configurar el número máximo de instancias a nivel de servicio
Puedes cambiar el ajuste de instancias máximas mediante la Google Cloud consola, la CLI de Google Cloud o un archivo YAML cuando creas un servicio o despliegas una revisión.
Consola
En la Google Cloud consola, ve a Cloud Run:
Si va a configurar un servicio nuevo, seleccione Servicios y haga clic en Implementar contenedor para que se muestre el formulario Crear servicio. Busca el formulario Escalado de servicios.
Si vas a configurar un servicio, haz clic en él para que se muestre su panel de detalles y, a continuación, haz clic en
Editar la configuración de escalado del nivel de servicio en la parte superior derecha del panel de detalles.En el campo Número máximo de instancias, especifica el número máximo de instancias de contenedor que quieras usar. Puedes usar cualquier valor entero entre
1
y el límite máximo posible para tu servicio.Haz clic en Crear para crear un servicio o en Implementar para implementar un servicio.
gcloud
Puedes actualizar el número máximo de instancias de un servicio determinado con el siguiente comando:
gcloud beta run services update SERVICE --max MAX-VALUE
Haz los cambios siguientes:
- SERVICE: el nombre de tu servicio.
- MAX-VALUE: el número máximo de instancias de contenedor que se requiere, con cualquier valor entero entre
1
y el límite máximo posible para tu servicio.
También puedes definir el número máximo de instancias durante la implementación con el siguiente comando:
gcloud beta run deploy --image IMAGE_URL --max MAX-VALUE
Haz los cambios siguientes:
- 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 ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - MAX-VALUE: número máximo obligatorio de instancias de contenedor. Puede usar cualquier valor entero entre
1
y el límite máximo.
YAML
Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.
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 el atributo
run.googleapis.com/maxScale:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA run.googleapis.com/maxScale: 'MAX-INSTANCE'
Haz los cambios siguientes:
- SERVICE: el nombre de tu servicio de Cloud Run
- MAX-INSTANCE: el número máximo de instancias de contenedor que se requiere, con cualquier valor entero entre
1
y el límite máximo posible para tu servicio.
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Ver el número máximo de instancias a nivel de servicio
Para ver la configuración actual del número máximo de instancias a nivel de servicio de tu servicio de Cloud Run, sigue estos pasos:
Consola
En la Google Cloud consola, ve a Cloud Run:
Haz clic en el servicio para abrir el panel Detalles del servicio.
Consulta el ajuste actual en la parte superior derecha del panel de detalles del servicio, junto a Escalado.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busque el valor de Escalado: automático (Mín.: MIN_VALUE; Máx.: MAX_VALUE) en la configuración devuelta.
Configurar el número máximo de instancias a nivel de revisión
Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.
De forma predeterminada, las revisiones de Cloud Run se configuran para escalar hasta un máximo de 100 instancias.
Puedes cambiar el ajuste de instancias máximas mediante la Google Cloud consola, la CLI de Google Cloud o un archivo YAML cuando creas un servicio o despliegas una revisión.
Consola
En la Google Cloud consola, ve a Cloud Run:
Busca y haz clic en el servicio que quieras actualizar en la lista de servicios para abrir sus detalles.
Haz clic en Editar y desplegar nueva revisión para mostrar el formulario de despliegue de la revisión.
Haz clic en la pestaña Contenedor.
Busque la sección Escalado de revisiones. En el campo Número máximo de instancias, especifica el número máximo de instancias de contenedor.
Haz clic en Desplegar.
gcloud
Puedes actualizar el número máximo de instancias de un servicio determinado con el siguiente comando:
gcloud beta run services update SERVICE --max-instances MAX-VALUE
Haz los cambios siguientes:
- SERVICE: el nombre de tu servicio.
- MAX-VALUE: número máximo obligatorio de instancias de contenedor. Puede usar cualquier valor entero entre
1
y el límite máximo.
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 el atributo
autoscaling.knative.dev/maxScale:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX-INSTANCE' name: REVISION
Haz los cambios siguientes:
- SERVICE: el nombre de tu servicio de Cloud Run
- MAX-INSTANCE: número máximo obligatorio de instancias de contenedor. Puede usar cualquier valor entero entre
1
y el límite máximo. - REVISION con un nuevo nombre de revisión o elimínelo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir los siguientes criterios:
- Empieza por
SERVICE-
- Contiene solo letras minúsculas, números y
-
- No termina con
-
- No supera los 63 caracteres
- Empieza por
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Ver la configuración de instancias máximas a nivel de revisión
Para ver la configuración actual del número máximo de instancias a nivel de revisión de tu servicio de Cloud Run, sigue estos pasos:
Consola
En la Google Cloud consola, ve a Cloud Run:
Haz clic en el servicio para abrir el panel Detalles del servicio.
Haz clic en la pestaña Revisiones.
En el panel de detalles de la derecha, consulta el ajuste Máximo de instancias de revisión, que se encuentra en la pestaña Contenedor.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busca el valor de Máximo de instancias: en la configuración devuelta.
Usar instancias mínimas o máximas a nivel de servicio y de revisión
En la siguiente tabla se muestra el comportamiento si combinas instancias máximas a nivel de servicio con instancias mínimas o máximas a nivel de revisión:
Configuración a nivel de servicio | Ajuste a nivel de revisión | Comportamiento |
---|---|---|
Se ha definido el número máximo de instancias a nivel de servicio | Número máximo de instancias a nivel de revisión definido | El límite máximo de instancias efectivo es el valor más bajo entre el número máximo de instancias a nivel de revisión y el número máximo de instancias a nivel de servicio. |
Se ha definido el número máximo de instancias a nivel de servicio | Se ha definido el número mínimo de instancias a nivel de revisión | Si el número máximo de instancias a nivel de servicio es inferior al número mínimo de instancias a nivel de revisión, la revisión iniciará instancias hasta alcanzar el número máximo de instancias a nivel de servicio y no alcanzará el número mínimo de instancias a nivel de revisión configurado. |
Usar el máximo de instancias a nivel de servicio con la división del tráfico
Si usas la división del tráfico, las instancias máximas a nivel de servicio se distribuyen entre las revisiones en función de la proporción de la división del tráfico. Por ejemplo, si el número máximo de instancias a nivel de servicio es 100, una división del tráfico del 50 % asigna 50 instancias a nivel de servicio a cada revisión. En la siguiente tabla se muestra un ejemplo de configuración:
Ejemplo de configuración | Comportamiento resultante |
---|---|
Número máximo de instancias a nivel de servicio (en un caso en el que no hay ajustes a nivel de revisión): 100
|
Se asigna una parte de las instancias máximas a nivel de servicio a cada revisión. El número máximo de instancias efectivas de cada revisión se fija en función de la división del tráfico. El número máximo de instancias de la revisión A es 10, de la revisión B es 10 y de la revisión C es 80. |