Definir el número máximo de instancias de los servicios

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:

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

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

    Ir a Cloud Run

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

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

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

  5. 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 formato LOCATION-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.

  1. 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
  2. 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.
  3. 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

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

    Ir a Cloud Run

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

  3. Consulta el ajuste actual en la parte superior derecha del panel de detalles del servicio, junto a Escalado.

gcloud

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. 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

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

    Ir a Cloud Run

  2. Busca y haz clic en el servicio que quieras actualizar en la lista de servicios para abrir sus detalles.

  3. Haz clic en Editar y desplegar nueva revisión para mostrar el formulario de despliegue de la revisión.

  4. Haz clic en la pestaña Contenedor.

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

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

  1. 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
  2. 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
  3. 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

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

    Ir a Cloud Run

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

  3. Haz clic en la pestaña Revisiones.

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

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. 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
  • Distribución del tráfico de la revisión A: 10%
  • División del tráfico de la revisión B: 10%
  • División del tráfico de la revisión C : 80%
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.