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 para tu servicio de Cloud Run con el comportamiento predeterminado del ajuste de escala automático de Cloud Run. Para ajustar manualmente la escala de tu servicio, 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 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, a menos que tengas una necesidad específica de limitar las instancias a nivel de la revisión.

Cuando se aplican instancias máximas, la configuración entra en vigencia de la siguiente manera:

  • A nivel del servicio: De inmediato
  • A nivel de la 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:

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 permisos de implementación y administra el acceso.

Configura instancias máximas a nivel de servicio

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

Console

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

    Ir a Cloud Run

  2. Si quieres configurar un servicio nuevo, selecciona Servicios y haz clic en Implementar contenedor para mostrar el formulario Crear servicio. Ubica el formulario Ajuste de escala del servicio.

  3. Si quieres configurar un servicio existente, haz clic en el servicio para mostrar su panel de detalles y, luego, haz clic en Editar la configuración de escalamiento a nivel del servicio en la parte superior derecha del panel de detalles.

  4. En el campo Cantidad máxima de instancias, 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.

  5. 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 beta run services update SERVICE --max MAX-VALUE

Reemplazar

  • SERVICE: 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.

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

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

Reemplazar

  • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato 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 del 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/launch-stage: BETA
        run.googleapis.com/maxScale: 'MAX-INSTANCE'

    Reemplazar

    • 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.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

Visualiza el nivel máximo de instancias en el 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 Cloud Run:

    Ir a Cloud Run

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

  3. Consulta el parámetro de configuración actual en la parte superior derecha del panel de detalles del servicio, junto a Scaling.

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, los servicios de Cloud Run están configurados para escalar verticalmente hasta un máximo de 100 instancias.

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

Console

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

    Ir a Cloud Run

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

  3. Haz clic en Editar e implementar una revisión nueva para mostrar el formulario de implementación de revisión.

  4. Haz clic en la pestaña Contenedor.

  5. Ubica la sección Revision scaling. En el campo Cantidad máxima de instancias, especifica la cantidad máxima de instancias de contenedor.

  6. Haz clic en Implementar.

gcloud

Puedes actualizar la cantidad máxima de instancias de un servicio determinado mediante el siguiente comando:

gcloud beta run services update SERVICE --max-instances MAX-VALUE

Reemplazar

  • SERVICE: El nombre de tu servicio.
  • MAX-VALUE: Es la cantidad máxima requerida de instancias de contenedor, con cualquier valor de número entero del 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
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: 'MAX-INSTANCE'
          name: REVISION

    Reemplazar

    • 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 del 1 al 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
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

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

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

Console

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

    Ir a Cloud Run

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

  3. Haz clic en la pestaña Revisiones.

  4. En el panel de detalles a la derecha, consulta el parámetro de configuración Instancias máx. de revisión que se muestra en la pestaña Contenedor.

gcloud

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. Busca el valor de Instancias máximas: 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:

Parámetro de configuración a nivel del servicio Configuración a nivel de la revisión Comportamiento
Se establece la cantidad máxima de instancias a nivel del servicio Se estableció la cantidad máxima de instancias a nivel de revisión El límite máximo de instancias efectivo es el valor más bajo entre las instancias máximas a nivel de revisión y las instancias máximas a nivel de servicio.
Se establece la cantidad máxima de instancias a nivel del servicio Se establecieron las instancias mínimas a nivel de revisión Si la cantidad máxima de instancias a nivel de servicio se establece en un valor inferior a la cantidad mínima de instancias a nivel de revisión, la revisión inicia instancias hasta la cantidad máxima de instancias a nivel de servicio y no alcanzará la cantidad mínima de instancias a nivel de revisión configurada.

Usa instancias máximas a 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 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 muestra:

Configuración de ejemplo Comportamiento resultante
Se establece la cantidad máxima de instancias a nivel de servicio (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 del servicio a cada revisión. La cantidad máxima de instancias efectivas para cada revisión se fija según la división del tráfico. La cantidad máxima de instancias para la revisión A es de 10, para la revisión B es de 10 y para la revisión C es de 80.