Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Configure Knative reserved instances

Última actualización: Sep 12, 2026

En aplicaciones con inicio lento, como las desarrolladas en Java, la política predeterminada de escalamiento a cero de Knative de la comunidad puede generar una alta latencia de arranque en frío. ACK ofrece reserved instances que mantienen instancias cálidas de bajo costo ejecutándose durante los periodos de inactividad. Esto permite responder rápidamente y controlar el gasto al mismo tiempo.

Funcionamiento

De forma predeterminada, Knative escala un Service a cero pods cuando se detiene el tráfico. Cada solicitud nueva debe esperar a que se programen los recursos, se descargue la imagen y se inicie la aplicación, lo cual puede tardar varios segundos.

Al habilitar una reserved instance, este comportamiento cambia:

  1. El tráfico se detiene: el Knative Service reduce su escala, pero una reserved instance permanece en línea.

  2. Llega la primera solicitud: ocurren dos acciones de manera simultánea:

    • La reserved instance procesa la solicitud de inmediato.

    • Knative crea instancias estándar para asumir el tráfico continuo.

  3. Transferencia del tráfico: en cuanto una instancia estándar está lista, las solicitudes posteriores se enrutan hacia ella.

  4. Limpieza: después de procesar la solicitud inicial, la reserved instance se finaliza.

image

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

Habilitar reserved instances

Agregue estas anotaciones al manifiesto de su Knative Service:

Annotation

Description

knative.aliyun.com/reserve-instance: "enable"

Habilita las reserved instances

knative.aliyun.com/reserve-instance-type: <type>

El tipo de instancia. Valores válidos: eci (predeterminado), ecs, acs

Las reserved instances generan cargos de forma continua, incluso sin tráfico. Consulte Billing .

Elegir un tipo de instancia

Seleccione el tipo de instancia adecuado para su carga de trabajo:

Instance type

Best for

Requires

ECI (predeterminado)

Cargas de trabajo serverless de propósito general; no requiere gestión de nodos

ACK Virtual Node

ACS

Cargas de trabajo que necesitan un control detallado de la clase de cómputo y el nivel de calidad

ACK Virtual Node

ECS

Cargas de trabajo con GPU o aquellas que requieren un tipo de instancia de ECS específico

Un nodo de ECS compatible

Si tiene dudas, comience con ECI. Este tipo cubre la mayoría de los escenarios y solo requiere ACK Virtual Node.

Configurar reserved instances de ECI

Elastic Container Instance (ECI) es el tipo predeterminado. Use la anotación knative.aliyun.com/reserve-instance-eci-use-specs para especificar los recursos por tipo de instancia o por CPU y memoria.

Especificar por tipo de instancia

Este ejemplo utiliza ecs.t6-c1m1.large y ecs.t5-lc1m2.small como instance types candidatos:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: hello-spec-1
spec:
  template:
    metadata:
      annotations:
        knative.aliyun.com/reserve-instance: enable
        knative.aliyun.com/reserve-instance-eci-use-specs: "ecs.t6-c1m1.large,ecs.t5-lc1m2.small"
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

Especificar por CPU y memoria

Si no necesita un tipo de instancia específico, defina la CPU y la memoria. Este ejemplo usa una instancia de 1 núcleo y 2 GiB:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: hello-spec-2
spec:
  template:
    metadata:
      annotations:
        knative.aliyun.com/reserve-instance: enable
        knative.aliyun.com/reserve-instance-eci-use-specs: "1-2Gi"
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

Configurar reserved instances de ACS

Las reserved instances de Alibaba Cloud Container Compute Service (ACS) le permiten especificar clases de cómputo y niveles de calidad. Para usar ACS, instale ACK Virtual Node y agregue la anotación knative.aliyun.com/reserve-instance-type: acs.

Especificar por clase de cómputo y calidad

Use knative.aliyun.com/reserve-instance-acs-compute-class para establecer la compute class y knative.aliyun.com/reserve-instance-acs-compute-qos para establecer la compute quality. Ambos parámetros son opcionales.

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
spec:
  template:
    metadata:
      annotations:
        knative.aliyun.com/reserve-instance: enable
        knative.aliyun.com/reserve-instance-type: acs
        # (Optional) Compute class for the ACS pod
        knative.aliyun.com/reserve-instance-acs-compute-class: "general-purpose"
        # (Optional) Compute quality for the ACS pod
        knative.aliyun.com/reserve-instance-acs-compute-qos: "default"
    spec:
      containers:
      - image: registry-vpc.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
        env:
        - name: TARGET
          value: "Knative"

Especificar por CPU y memoria

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go-resource
spec:
  template:
    metadata:
      annotations:
        knative.aliyun.com/reserve-instance: enable
        knative.aliyun.com/reserve-instance-type: acs
        knative.aliyun.com/reserve-instance-cpu-resource-request: "1"
        knative.aliyun.com/reserve-instance-memory-resource-request: "2Gi"
    spec:
      containers:
      - image: registry-vpc.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
        env:
        - name: TARGET
          value: "Knative"

Configurar reserved instances de ECS

Utilice un tipo de instancia de ECS de menor costo para reducir los gastos durante la inactividad. Las reserved instances de ECS funcionan bien para cargas de trabajo con GPU.

Cargas de trabajo con GPU

Este ejemplo configura ecs.gn6i-c4g1.xlarge como una reserved instance de GPU con especificaciones reducidas para un servicio de inference de Qwen. La instancia estándar utiliza una GPU completa, mientras que la reserved instance emplea especificaciones menores para procesar la primera solicitud a un costo más bajo.

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  labels:
    release: qwen
  name: qwen
  namespace: default
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/metric: "concurrency"
        # Enable and configure an ECS reserved instance. You can configure one or more instance types.
        knative.aliyun.com/reserve-instance: enable
        knative.aliyun.com/reserve-instance-type: ecs
        knative.aliyun.com/reserve-instance-ecs-use-specs: ecs.gn6i-c4g1.xlarge
      labels:
        release: qwen
    spec:
      containers:
      - command:
        - sh
        - -c
        - python3 -m vllm.entrypoints.openai.api_server --port 8080 --trust-remote-code
          --served-model-name qwen --model /mnt/models/Qwen-7B-Chat-Int8 --gpu-memory-utilization
          0.95 --quantization gptq --max-model-len=6144
        image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm:0.4.1
        imagePullPolicy: IfNotPresent
        name: vllm-container
        resources:
          # Resource configuration for the standard instance
          limits:
            cpu: "16"
            memory: 60Gi
            nvidia.com/gpu: "1"
          requests:
            cpu: "8"
            memory: 36Gi
            nvidia.com/gpu: "1"
        volumeMounts:
        - mountPath: /mnt/models/Qwen-7B-Chat-Int8
          name: qwen-7b-chat-int8
      volumes:
      - name: qwen-7b-chat-int8
        persistentVolumeClaim:
          claimName: qwen-7b-chat-int8-dataset

Especificar por CPU y memoria

Este ejemplo especifica una reserved instance de ECS de 1 núcleo y 2 GiB:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-resource
spec:
  template:
    metadata:
      annotations:
        knative.aliyun.com/reserve-instance: enable
        knative.aliyun.com/reserve-instance-type: ecs
        knative.aliyun.com/reserve-instance-cpu-resource-request: "1"
        knative.aliyun.com/reserve-instance-cpu-resource-limit: "1"
        knative.aliyun.com/reserve-instance-memory-resource-request: "2Gi"
        knative.aliyun.com/reserve-instance-memory-resource-limit: "2Gi"
    spec:
      containers:
      - image: registry-vpc.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
        env:
        - name: TARGET
          value: "Knative"

Configurar un pool de reserved instances

Una sola reserved instance procesa la primera solicitud tras un periodo de inactividad. En servicios con picos de tráfico frecuentes, amplíe la configuración a un pool mediante knative.aliyun.com/reserve-instance-replicas. Cuando llega el tráfico, las reserved instances ya preparadas responden de inmediato mientras las instancias estándar escalan horizontalmente. Una vez que las instancias estándar asumen la carga, el tráfico se enruta hacia ellas y el pool reservado reduce su escala a cero.

Este ejemplo crea un pool de 3 instancias con especificaciones reducidas:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: hello-reserve-pool
spec:
  template:
    metadata:
      annotations:
        knative.aliyun.com/reserve-instance: enable
        knative.aliyun.com/reserve-instance-replicas: "3"
        knative.aliyun.com/reserve-instance-eci-use-specs: "ecs.t6-c1m1.large,ecs.t5-lc1m2.small"
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

Aplicar en producción

Elija el tipo de instancia de menor costo que ejecute su aplicación de forma confiable y procese como mínimo una solicitud. La reserved instance solo necesita manejar el tráfico hasta que las instancias estándar estén listas, por lo que no requiere coincidir con sus especificaciones.

Utilice un pool reservado para servicios con ráfagas intensas. Si su servicio recibe picos de tráfico repentinos, configure varias réplicas con knative.aliyun.com/reserve-instance-replicas para absorber la carga inicial.

Considere la facturación continua al dimensionar las reserved instances. Estas instancias generan cargos en todo momento, incluidos los periodos de inactividad. Utilice el tipo de instancia más pequeño capaz de procesar una sola solicitud para mantener bajos los costos por inactividad.

Monitoreo y alertas: supervise el escalamiento del Knative Service para comprobar la transferencia de las reserved instances a las instancias estándar. Configure alertas de latencia de respuesta para los servicios críticos.

Facturación

Las reserved instances generan cargos de forma continua, incluso durante los periodos de inactividad. Consulte los detalles de facturación de cada tipo de instancia:

Siguientes pasos