Usar instancias mínimas

Consulta cómo habilitar las instancias inactivas de tus servicios configurando el ajuste de instancias mínimas.

De forma predeterminada, Knative Serving aumenta la escala hasta el número de instancias en función del número de solicitudes entrantes. Sin embargo, si tu servicio requiere una latencia reducida y quieres limitar el número de inicios en frío, puedes cambiar este comportamiento predeterminado especificando un número mínimo de instancias de contenedor que se mantengan en ejecución y listas para atender solicitudes.

Las instancias que se mantengan en funcionamiento de esta forma generarán costes de facturación.

Revisiones e instancias mínimas

Las instancias mínimas solo se inician si la revisión es direccionable. Una revisión es direccionable si se cumple alguna de estas condiciones:

  • Recibe un porcentaje del tráfico.
  • Se le ha asignado una etiqueta de revisión.

Definir y actualizar instancias mínimas

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 instancias de contenedor tienen min-instances desactivado, con un ajuste de 0. Puedes cambiar este valor predeterminado mediante la Google Cloud consola o la CLI de Google Cloud cuando implementes un servicio nuevo o actualices uno que ya tengas e implementes una revisión:

Consola

  1. Ve a Knative Serving en la Google Cloud consola:

    Ir a Knative serving

  2. Haga clic en Crear servicio si va a configurar un servicio nuevo que va a implementar. Si va a configurar un servicio que ya tiene, haga clic en él y, a continuación, en Editar y desplegar nueva revisión.

  3. En Configuración avanzada, haga clic en Contenedor.

  4. En el campo Número mínimo de instancias, especifica el número de instancias de contenedor que quieres mantener activas y listas para recibir solicitudes.

  5. Haz clic en Siguiente para ir a la siguiente sección.

  6. En la sección Configurar la activación del servicio, selecciona la conectividad que quieras usar para invocar el servicio.

  7. Haz clic en Crear para desplegar la imagen en Knative Serving y espera a que se complete el despliegue.

Línea de comandos

  • En el caso de los servicios que ya tengas, define el número mínimo de instancias de contenedor ejecutando el comando gcloud run services update con el parámetro --min-instances:

    gcloud run services update SERVICE --min-instances MIN-VALUE

    Sustituye:

    • SERVICE con el nombre de tu servicio.
    • MIN-VALUE con el número de instancias de contenedor que quieras mantener activas para que estén listas para recibir solicitudes. Especifica default para borrar cualquier ajuste de instancia mínima.
  • En el caso de los servicios nuevos, define el número mínimo de instancias de contenedor ejecutando el comando gcloud run deploy con el parámetro --min-instances:

    gcloud run deploy SERVICE --image=IMAGE_URL --min-instances MIN-VALUE

    Sustituye:

    • SERVICE con el nombre de tu servicio.
    • IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo, gcr.io/cloudrun/hello.
    • MIN-VALUE con el número deseado de instancias de contenedor que se mantendrán activas y listas para recibir solicitudes. Especifica default para borrar cualquier ajuste de instancia mínima.

YAML

Puedes descargar la configuración de un servicio en un archivo YAML con el comando gcloud run services describe mediante la marca --format=export. A continuación, puedes modificar ese archivo YAML e implementar los cambios con el comando gcloud run services replace. Debe asegurarse de modificar solo los atributos especificados.

  1. Descarga la configuración de tu servicio en un archivo llamado service.yaml en el espacio de trabajo local:

    gcloud run services describe SERVICE --format export > service.yaml

    Sustituye SERVICE por el nombre de tu servicio de Knative.

  2. En su archivo local, actualice el atributo autoscaling.knative.dev/minScale::

    spec:
     template:
       metadata:
         annotations:
           autoscaling.knative.dev/minScale: 'MIN-INSTANCE' 

    Sustituye:

    • MIN-VALUEcode> con el número de instancias de contenedor que quieras mantener activas para que estén listas para recibir solicitudes. Especifica default para borrar cualquier ajuste de instancia mínima.
  3. Sustituye el servicio por su nueva configuración con el siguiente comando:

    gcloud run services replace service.yaml