Establece la cantidad máxima de instancias para los servicios

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 escalado automático de Cloud Run. Para escalar tu servicio de forma manual, consulta Escalamiento 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 este parámetro de configuración como una forma de controlar tus costos o limitar la cantidad 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 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 la cantidad máxima 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 las instancias máximas, la configuración entra en vigencia de la siguiente manera:

  • Nivel de servicio: inmediato
  • A nivel de revisión: cuando se implementa la revisión

Revisiones etiquetadas y cantidad máxima de instancias 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:

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 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.

Consideraciones de costo

El parámetro de configuración de instancias máximas te permite establecer un límite de seguridad de costos para administrarlos. Establecer un número máximo más alto prioriza la disponibilidad, pero presenta posibles riesgos de facturación por aumentos repentinos de tráfico inesperados o errores de configuración. Como medida de protección de costos, establece este parámetro de configuración a nivel del servicio cuando lo implementes por primera vez. Te sugerimos que comiences con un valor máximo de 3 instancias para proteger tu presupuesto de aumentos repentinos inesperados.

Revisa los precios de Cloud Run o calcula 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 las alertas de facturación.

Configura la cantidad máxima de instancias a nivel de servicio

Puedes cambiar la configuración de instancias máximas con la consola de Google Cloud , Google Cloud CLI, YAML o Terraform cuando creas un servicio nuevo o implementas una revisión nueva.

Console

  1. En la consola Google Cloud , ve a Cloud Run:

    Ir a Cloud Run

  2. Selecciona Servicios en el menú de navegación de Cloud Run:

    1. Si estás configurando un servicio nuevo, haz clic en Implementar contenedor y completa la página de configuración inicial del servicio.

    2. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en la pestaña Ajuste de escala.

  3. En Escalamiento del servicio, busca el campo Cantidad máxima de instancias y especifica la cantidad máxima requerida de instancias de contenedor con cualquier valor de número entero de 1 al límite máximo posible para tu servicio. Para quitar el límite a nivel del servicio, borra el valor que estableciste. Esta acción revierte el parámetro de configuración a su valor predeterminado.

  4. Haz clic en Crear para un servicio nuevo. Haz clic en Ver diferencia y volver a implementar y, luego, en Implementar cambios para 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: Es el nombre de tu servicio.
  • MAX-VALUE: Es la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de 1 al límite máximo posible para tu servicio. Para quitar el límite a nivel del servicio, borra el valor que estableciste. Esta acción revierte el parámetro de configuración a su valor predeterminado.

También puedes configurar la cantidad máxima de instancias durante la implementación con el siguiente comando:

gcloud run deploy --image IMAGE_URL --max MAX-VALUE

Reemplaza lo siguiente:

  • 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 de LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • MAX-VALUE: Es la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de 1 al 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.

  1. 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
  2. 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: Es la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de 1 al límite máximo posible para tu servicio. Para quitar el límite a nivel del servicio, borra el valor que estableciste. Esta acción revierte el parámetro de configuración a su valor predeterminado.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

    El comando gcloud run services replace usa de forma predeterminada el archivo service.yaml si 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 un recurso google_cloud_run_v2_service en tu 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 región de Google Cloud , por ejemplo, europe-west1.
  • MAX_INSTANCE: Es la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de 1 al límite máximo.
  • 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 de LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

Visualiza la cantidad máxima de instancias a nivel de servicio

Para ver la configuración actual máxima de instancias a nivel de servicio para tu servicio de Cloud Run, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página Servicios de Cloud Run:

    Ir a Cloud Run

  2. Haz clic en ese servicio para abrir el panel Detalles del servicio.

  3. Haz clic en la pestaña Ajuste de escala para ver la configuración actual.

gcloud

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. Busca el valor de Escalamiento: Automático (mín.: MIN_VALUE, máx.: MAX_VALUE) en la configuración que se muestra.

Configura la cantidad máxima de instancias 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.

El escalamiento a nivel de revisión solo está disponible para los servicios que ya tenían configurada la función.

Console

  1. En la consola Google Cloud , ve a Cloud Run:

    Ir a Cloud Run

  2. Selecciona Servicios en el menú de navegación de Cloud Run:

    1. Si estás configurando un servicio nuevo, haz clic en Implementar contenedor y completa la página de configuración inicial del servicio. Luego, haz clic en Contenedores, Herramientas de redes, Seguridad para expandir la página de configuración del servicio.

    2. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en la pestaña Ajuste de escala.

  3. En la sección Escalamiento de revisión, especifica la cantidad máxima de instancias de contenedor en el campo Cantidad máxima de instancias.

  4. Haz clic en Crear para un servicio nuevo. Haz clic en Ver diferencia y volver a implementar y, luego, en Implementar cambios para 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-instances MAX-VALUE

Reemplaza lo siguiente:

  • SERVICE: Es el nombre de tu servicio.
  • MAX-VALUE: Es la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de 1 al límite máximo.

YAML

  1. 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
  2. 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: Es la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero de 1 al límite máximo.
    • REVISION: 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
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

    El comando gcloud run services replace usa de forma predeterminada el archivo service.yaml si está presente.

Visualiza la configuración máxima de instancias a nivel de revisión

El escalamiento a nivel de revisión solo está disponible para los servicios que ya tenían configurada la función.

Para ver la configuración actual máxima de instancias a nivel de revisión para el servicio de Cloud Run, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página Servicios de Cloud Run:

    Ir a Cloud Run

  2. Haz clic en ese servicio para abrir el panel Detalles del servicio.

  3. Haz clic en la pestaña Ajuste de escala.

  4. En Escalamiento de revisión, consulta la Cantidad máxima de instancias.

gcloud

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. 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 con las instancias mínimas o máximas a nivel de revisión:

Configuración a nivel del servicio Configuración a nivel de la revisión Comportamiento
Se establecieron las instancias máximas a nivel de servicio Cantidad máxima de instancias establecidas 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 establecieron las instancias máximas a nivel de servicio Se establecieron las instancias mínimas a nivel de revisión Si las instancias máximas a nivel de servicio se establecen en un valor inferior al de las instancias mínimas a nivel de revisión, la revisión iniciará instancias hasta alcanzar el máximo a nivel de servicio y no llegará al mínimo configurado a nivel de revisión.

Usa instancias máximas a nivel de servicio con 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 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 ejemplo:

Configuración de ejemplo Comportamiento resultante
Cantidad máxima de instancias a nivel de servicio establecida (situación en la que no hay parámetros de configuración a nivel de revisión): 100
  • División del tráfico para la revisión A: 10%
  • División del tráfico para la revisión B: 10%
  • División del tráfico para la revisión C : 80%
Se asigna una parte de las instancias máximas a nivel de servicio a cada revisión. La cantidad máxima de instancias efectiva para cada revisión se fija en función de la división del tráfico. Las instancias máximas para la revisión A son 10; para la revisión B, 10, y para la revisión C, 80.