Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Best practices for spot instance node pools

Última actualización: Sep 21, 2026

Un node pool de spot instances contiene una combinación de spot instances e instancias pay-as-you-go en una proporción específica para reducir costos. Este tema presenta el concepto y los escenarios de uso de los node pools de spot instances. También describe cómo configurar una combinación de instancias, establecer la proporción entre spot instances e instancias pay-as-you-go, comprobar el estado de vencimiento de las spot instances y gestionar correctamente dicho vencimiento.

Descripción general

Spot instances utiliza el modelo de facturación pay-as-you-go, donde se pagan los recursos después de usarlos. El costo se calcula con base en el precio de mercado y la duración del uso.

Una spot instance es un tipo especial de instancia pay-as-you-go cuyo precio fluctúa según la oferta y la demanda. Ofrece ahorros significativos y reduce el costo de los nodos hasta en un 90 % en comparación con las instancias pay-as-you-go regulares. Al crear una spot instance, debe especificar un modo de puja. Si el precio de mercado en tiempo real para el tipo de instancia especificado es inferior a su puja y hay inventario suficiente, la spot instance se crea correctamente.

Una vez creada, una spot instance funciona igual que una instancia pay-as-you-go estándar. Puede utilizarla junto con otros productos de la nube, como discos en la nube y direcciones IP elásticas (EIP). Las spot instances tienen un periodo de protección predeterminado de una hora. Después de este periodo, el sistema comprueba el precio de mercado en tiempo real y el inventario cada cinco minutos. La spot instance se libera si el precio de mercado supera su puja o si el inventario es insuficiente.

Escenarios de uso

  • Node pools de spot instances

    Las spot instances de un node pool pueden recuperarse con poco aviso previo. Por ello, son más adecuadas para aplicaciones sin estado y tolerantes a fallos. Esto incluye procesamiento por lotes, cargas de trabajo de entrenamiento de aprendizaje automático, ETL de big data (como Apache Spark), aplicaciones de procesamiento de colas y aplicaciones API sin estado.

    Para las aplicaciones que no toleran estas interrupciones, utilice node pools con instancias pay-as-you-go o de suscripción. Estas cargas de trabajo incluyen:

    • Herramientas de gestión de clústeres, como herramientas de monitoreo y operaciones.

    • Despliegues o aplicaciones que requieren cargas de trabajo con estado, como bases de datos.

  • Node pools de spot instances con escalado automático

    Si su carga de trabajo es adecuada para un node pool de spot instances y tiene periodos pico y valle bien definidos, considere utilizar un node pool de spot instances con escalado automático habilitado.

    Cuando el escalado automático está habilitado, el escalador automático del clúster comprueba si el node pool de spot instances necesita escalar horizontalmente para desplegar Pods. Además, escala verticalmente de forma automática cuando los nodos cumplen los criterios de reducción. Un node pool de spot instances con escalado automático habilitado escala horizontalmente más rápido y libera los recursos inactivos con mayor prontitud. La capacidad de agregar instancias rápidamente ayuda a compensar la recuperación pasiva de las spot instances. También mejora el ahorro de costos al liberar los recursos inactivos.

Seleccione y configure una combinación de spot instances

No existe una solución única para seleccionar tipos de instancia. Elija una configuración que equilibre mejor el inventario, el costo y el rendimiento según las necesidades de su negocio. Alibaba Cloud ECS ofrece una amplia variedad de tipos de instancia. El primer paso para utilizar eficazmente un node pool de spot instances es elegir una combinación de instancias que minimice el posible impacto en el negocio, especialmente en un escenario de puja.

Puede seleccionar y configurar su combinación de spot instances mediante los siguientes métodos.

Utilice las recomendaciones de la consola

La consola de ACK proporciona asesoría para la selección de instancias. Cuando usted crea o edita un node pool, la consola sugiere los tipos de instancia que actualmente están disponibles en la región seleccionada. Puede filtrar estos tipos de instancia según sus requisitos de recursos. Después de seleccionar los tipos de instancia, la consola calcula la fortaleza de elasticidad y el rango de precios de las instancias. Utilice la recomendación de fortaleza de elasticidad para agregar más tipos de instancia y establezca un precio máximo de instancia.

Para obtener más información sobre cómo crear o editar un node pool, consulte Create and manage node pools .

En la sección Selected Specifications, puede consultar los tipos de instancia seleccionados y ajustar su prioridad de compra mediante los botones Move Up y Move Down. En la parte inferior de la página se muestra el nivel de fortaleza de elasticidad del grupo de escalado (por ejemplo, "Medium") y se proporcionan sugerencias de mejora. Entre ellas se incluyen seleccionar varios vSwitches en diferentes zonas y elegir diversos tipos de instancia con inventario suficiente.

Utilice la CLI spot-instance-advisor

ACK proporciona una herramienta de línea de comandos de código abierto, spot-instance-advisor, para recuperar las fluctuaciones históricas de precios y la información de precios actual de las spot instances. La herramienta spot-instance-advisor utiliza una API para obtener los tipos de instancia y las curvas de precios históricos de una región. Luego emplea análisis estadístico para calcular y clasificar los tipos de instancia con el menor costo por hora de núcleo. También calcula un valor de entropía de precios basado en la dispersión de precios. Un valor de entropía más alto indica fluctuaciones de precios más frecuentes. Se recomienda seleccionar tipos de instancia con baja entropía.

Nota

Para descargar spot-instance-advisor, consulte spot-instance-advisor.

La herramienta spot-instance-advisor admite los siguientes parámetros de filtro.

Usage of ./spot-instance-advisor:
  -accessKeyId string
        Your accessKeyId of cloud account
  -accessKeySecret string
        Your accessKeySecret of cloud account
  -cutoff int
        Discount of the spot instance prices (default 2)
  -family string
        The spot instance family you want (e.g. ecs.n1,ecs.n2)
  -limit int
        Limit of the spot instances (default 20)
  -maxcpu int
        Max cores of spot instances  (default 32)
  -maxmem int
        Max memory of spot instances (default 64)
  -mincpu int
        Min cores of spot instances (default 1)
  -minmem int
        Min memory of spot instances (default 2)
  -region string
        The region of spot instances (default "cn-hangzhou")
  -resolution int
        The window of price history analysis (default 7)

Ejecute el siguiente comando para obtener la configuración de tipo de instancia más adecuada para la región actual.

Los parámetros accessKeyId , accessKeySecret y region son obligatorios. Especifique los valores según los requisitos de su negocio.
./spot-instance-advisor --accessKeyId=<id> --accessKeySecret=<secret> --region=<cn-zhangjiakou>

Ejemplo de salida

Initialize cache ready with 619 kinds of instanceTypes
Filter 93 of 98 kinds of instanceTypes.
Fetch 93 kinds of InstanceTypes prices successfully.
Successfully compare 199 kinds of instanceTypes
      InstanceTypeId               ZoneId     Price(Core)        Discount           ratio
        ecs.c6.large     cn-zhangjiakou-c          0.0135             1.0             0.0
        ecs.c6.large     cn-zhangjiakou-a          0.0135             1.0             0.0
      ecs.c6.2xlarge     cn-zhangjiakou-a          0.0136             1.0             0.0
      ecs.c6.2xlarge     cn-zhangjiakou-c          0.0136             1.0             0.0
      ecs.c6.3xlarge     cn-zhangjiakou-a          0.0137             1.0             0.0
      ecs.c6.3xlarge     cn-zhangjiakou-c          0.0137             1.0             0.0
       ecs.c6.xlarge     cn-zhangjiakou-c          0.0138             1.0             0.0
       ecs.c6.xlarge     cn-zhangjiakou-a          0.0138             1.0             0.0
     ecs.hfc6.xlarge     cn-zhangjiakou-a          0.0158             1.0             0.0
      ecs.hfc6.large     cn-zhangjiakou-a          0.0160             1.0             0.0
      ecs.hfc6.large     cn-zhangjiakou-c          0.0160             1.0             0.0
      ecs.g6.3xlarge     cn-zhangjiakou-a          0.0175             1.0             0.0
      ecs.g6.3xlarge     cn-zhangjiakou-c          0.0175             1.0             0.0
        ecs.g6.large     cn-zhangjiakou-a          0.0175             1.0             0.0
       ecs.g6.xlarge     cn-zhangjiakou-a          0.0175             1.0             0.0
      ecs.g6.2xlarge     cn-zhangjiakou-a          0.0175             1.0             1.0
      ecs.g6.2xlarge     cn-zhangjiakou-c          0.0175             1.0             3.0
        ecs.g6.large     cn-zhangjiakou-c          0.0175             1.0             30.8
       ecs.g6.xlarge     cn-zhangjiakou-c          0.0175             1.0             9.7
      ecs.hfg6.large     cn-zhangjiakou-c          0.0195             1.0             0.2

La salida muestra que los tipos de instancia mejor clasificados tienen precios relativamente estables y valores bajos para el coeficiente de caos (la columna ratio). Algunos tipos de instancia con clasificación más baja también pueden tener un descuento del 90 %, pero sus coeficientes de caos (la columna ratio) son más altos. Cuando configure los tipos de instancia, priorice las combinaciones con precios más bajos y coeficientes de caos menores.

Configure la proporción entre spot instances e instancias pay-as-you-go

Al configurar la proporción de spot instances respecto a las instancias pay-as-you-go en un node pool, garantiza una línea base estable de instancias pay-as-you-go. Al mismo tiempo, reduce los costos con una proporción planificada de spot instances.

Importante
  • Su clúster debe ser de la versión 1.9 o posterior. Para actualizar un clúster, consulte Manually upgrade a cluster.

  • Asegúrese de que su clúster pueda agregar una cantidad suficiente de nodos. Para obtener información sobre las cuotas de nodos y cómo solicitar un aumento de cuota, consulte Quotas and limits.

  • Cuando agregue nodos existentes, asegúrese de que las instancias ECS en su Virtual Private Cloud (VPC) tengan una dirección IP elástica (EIP) vinculada, o de que la VPC correspondiente tenga un NAT Gateway configurado. Esto garantiza que los nodos puedan acceder a Internet público y evita errores durante la adición de nodos.

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Nodes > Node Pools.

  3. En la página Node Pools, haga clic en Create Node Pool y configure los parámetros.

    A continuación se describen únicamente los elementos de configuración clave. Para obtener instrucciones detalladas, consulte Create and manage node pools.

    Parámetro

    Descripción

    vSwitch

    Se recomienda seleccionar vSwitches en diferentes zonas para mejorar la alta disponibilidad del clúster.

    Billing Method

    Seleccione Spot Instance.

    Expanda Advanced Options y configure los siguientes parámetros.

    Establezca scaling policy en cost optimization policy y defina Pay-As-You-Go Instance Percentage (%) como 20. Seleccione la casilla de verificación use pay-as-you-go instances to supplement spot capacity (esto inicia instancias pay-as-you-go para cumplir con la cantidad requerida si las spot instances no están disponibles por precio o inventario). Además, seleccione la casilla de verificación enable supplemental spot instance (esto drena y reemplaza proactivamente una instancia 5 minutos antes de su recuperación; deshabilitar esta opción puede causar interrupciones en el servicio).

    Scaling Policy

    • Priority-based Policy: escala los nodos según la prioridad de vSwitch que usted configure (la prioridad disminuye de arriba hacia abajo). Si no se puede crear una instancia en una zona de mayor prioridad, el sistema utiliza automáticamente el siguiente vSwitch de la lista de prioridades.

    • Cost Optimization: escala horizontalmente primero las instancias con el precio unitario de vCPU más bajo.

      Si el node pool utiliza Preemptible Instance, estas reciben prioridad. También puede configurar un Pay-as-you-go Instance Percentage (%). Si no se pueden crear spot instances de un tipo específico debido a inventario insuficiente, el sistema intenta crear automáticamente instancias pay-as-you-go como complemento.

    • Distribution Balancing: distribuye las instancias ECS de manera uniforme en varias zonas. Esta política solo aplica para despliegues multizona. Si la distribución se desequilibra por problemas como inventario insuficiente, puede ejecutar nuevamente la operación de balanceo.

    Use Pay-as-you-go Instances When Spot Instances Are Insufficient

    Si esta opción está habilitada y no se puede crear un número suficiente de spot instances debido a restricciones de precio o inventario, ACK intenta crear automáticamente instancias pay-as-you-go como complemento.

    Enable Supplemental Spot Instance

    Cuando está habilitada, al recibir un mensaje del sistema que indica que una spot instance está a punto de recuperarse (5 minutos antes de la recuperación), ACK intenta escalar horizontalmente una nueva instancia como compensación.

    • Compensación correcta: ACK drena el nodo antiguo y lo elimina del clúster.

    • Compensación con errores: ACK no drena el nodo antiguo. La instancia se recupera y se libera de todos modos después de 5 minutos. Cuando se restablece el inventario o se cumplen las condiciones de precio, ACK compra automáticamente una instancia para mantener la cantidad deseada de nodos. Para obtener más información, consulte Best practices for spot instance node pools.

    La liberación proactiva de spot instances puede causar interrupciones en el negocio. Para mejorar la tasa de éxito de la compensación, se recomienda habilitar también Use Pay-as-you-go Instances When Spot Instances Are Insufficient.

    Recursos en la nube y facturación: imageECS Instance

Una vez completada la configuración, vaya a la lista de node pools y haga clic en Details en la columna Actions. A continuación, haga clic en la pestaña Basic Information. En la sección Node Configurations, puede consultar el porcentaje de instancias pay-as-you-go.

Compruebe el estado de vencimiento de las spot instances

Para evitar salidas inesperadas de nodos por el vencimiento de spot instances, ACK utiliza el componente ack-node-problem-detector (NPD) para obtener información sobre las próximas liberaciones de instancias y notificarle.

Para instalar el componente NPD, consulte Step 1: Install the ack-node-problem-detector component .

En un clúster de ACK, las instancias ECS funcionan como nodos que respaldan el clúster y sus servicios en ejecución. Según su política de creación, algunas instancias, como las spot instances y las instancias de suscripción, están sujetas a liberación automática al vencer. Si no se toman medidas preventivas como la expulsión de Pods, el drenaje de nodos o el reemplazo de nodos antes de que una instancia se libere automáticamente, los servicios del clúster pueden verse afectados. Una salida inesperada de un nodo maestro puede provocar un fallo a nivel de clúster. Para evitar problemas por el vencimiento de spot instances, utilice el estado InstanceExpired del componente NPD para conocer una próxima liberación.

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Nodes > Nodes.

  3. En la página Nodes, haga clic en el nombre del nodo de destino. También puede elegir More > Details en la columna Actions del nodo de destino.

  4. En la página de detalles del nodo, compruebe el estado de la condición InstanceExpired.

    En la sección Status, compruebe el estado de la condición InstanceExpired.

    Descripción de los estados de InstanceExpired:

    Estado de InstanceExpired

    Descripción

    True

    Si el estado de InstanceExpired es True y el Content es InstanceToBeTerminated, la spot instance está a punto de vencer y se liberará.

    False

    Si el estado de InstanceExpired es False y el Content es InstanceNotToBeTerminated, la spot instance no está por vencer y puede seguir utilizándose.

    Unknown

    Un estado Unknown indica un error del complemento. Envíe un ticket para resolver el problema.

    Si el estado de InstanceExpired es True, puede consultar los eventos relacionados con el vencimiento de la instancia en la sección Events.

Si el estado de InstanceExpired es True, la spot instance está a punto de vencer y se liberará. Si necesita continuar utilizando los servicios de ese nodo, programe sus aplicaciones en otros nodos. Para obtener más información, consulte Schedule applications to a specific node.

Gestione correctamente el vencimiento de las spot instances

La gestión correcta del vencimiento de las spot instances implica principalmente monitoreo y notificaciones, complementos proactivos de nodos con sus políticas, y comportamientos de manejo personalizados.

Monitoreo y notificaciones

Para notificarle sobre la liberación de una spot instance lo antes posible, los clústeres de ACK utilizan el componente NPD para monitorear los mensajes previos a la liberación de las spot instances.

  • Cuando no se detecta ningún mensaje previo a la liberación para la spot instance, el valor de InstanceExpired en el estado del nodo es False. En la página de detalles del nodo, haga clic en la pestaña Status y compruebe la condición InstanceExpired en la lista de condiciones. Cuando su estado es False y el mensaje es InstanceNotToBeTerminated, indica que la spot instance no se está recuperando en ese momento.

  • Cuando el valor de InstanceExpired de una spot instance es True, significa que la spot instance está a punto de vencer y se liberará. ACK le notifica sobre la próxima liberación mediante un evento de Kubernetes. Cuando se detecta un mensaje previo a la liberación, aparece un evento InstanceToBeTerminated en el panel Events del clúster, lo cual indica que la instancia está a punto de liberarse.

Enable Supplemental Spot Instance

El vencimiento y la liberación de las spot instances es un factor clave que afecta la estabilidad de las cargas de trabajo en un nodo. ACK proporciona diversos métodos para responder rápidamente a los eventos de liberación de spot instances, desde la configuración y el escalado automático hasta el monitoreo y las notificaciones. Sin embargo, estos métodos suelen actuar después de que se recupera la spot instance. Durante el periodo entre la recuperación y el aprovisionamiento de una nueva instancia, los recursos disponibles del clúster se reducen. Para minimizar o eliminar este impacto, ACK utiliza la función de complemento de nodos para activar el inicio de una nueva instancia antes de que se recupere la instancia por vencer.

Después de habilitar la función de spot instance complementaria, ACK monitorea automáticamente si una instancia de nodo está a punto de liberarse. Cuando ACK detecta una próxima liberación, activa automáticamente una actividad de escalado para iniciar un nuevo nodo. Esta nueva instancia, creada para reemplazar la que está por liberarse, se denomina instancia complementaria. Una vez que la instancia complementaria se ejecuta correctamente, activa la reducción y la liberación de la spot instance por vencer. La estrategia de liberación incluye procedimientos de apagado controlado, como aislar el nodo (hacerlo no programable), drenarlo y eliminarlo del clúster. Este proceso ayuda a garantizar que las cargas de trabajo de la spot instance por vencer se migren sin problemas a otros nodos del clúster, lo que minimiza el impacto del vencimiento de la instancia en su negocio.

Importante
  • Si el complemento de la instancia falla por motivos como inventario insuficiente, ACK no drena el nodo antiguo. La recuperación de la spot instance puede causar interrupciones en el servicio. Después de un fallo, cuando se restablece el inventario o se cumplen las condiciones de precio, ACK compra automáticamente una instancia para garantizar la cantidad deseada de nodos.

    Para mejorar la tasa de éxito del complemento, se recomienda habilitar también Use Pay-as-you-go Instances When Spot Instances Are Insufficient.

  • El resultado del complemento de la instancia no afecta la recuperación de la spot instance por vencer. Independientemente de si usted elige Enable Supplemental Spot Instance, la instancia por vencer se recupera 5 minutos después del aviso previo a la recuperación.

抢占式实例节点预补偿.png

Agregue lógica de manejo personalizada

En muchos escenarios reales, dar de baja un nodo requiere más pasos que un apagado controlado estándar, como eliminar la información del nodo de un centro DNS registrado. Para atender estas necesidades, monitoree el estado InstanceExpired del nodo o escuche el evento InstanceToBeTerminated. Cuando reciba una notificación de que la instancia del nodo está por vencer o se liberará, trate el nodo como pendiente de baja y luego ejecute su lógica personalizada. Para obtener instrucciones específicas sobre cómo monitorear el estado de vencimiento de las spot instances, consulte Check the expiration status of spot instances.