Instancias de spot - Guía del usuario de Eksctl

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Instancias de spot

Grupos de nodos gestionados

eksctladmite nodos de trabajo puntual mediante grupos de nodos gestionados por EKS, una función que permite a los clientes de EKS con aplicaciones tolerantes a errores aprovisionar y gestionar fácilmente instancias EC2 puntuales para sus clústeres de EKS. EKS Managed Nodegroup configurará y lanzará un grupo de instancias puntuales con EC2 escalado automático siguiendo las prácticas recomendadas de Spot y agotando automáticamente los nodos trabajadores de Spot antes de que AWS interrumpa las instancias. El uso de esta función no conlleva ningún cargo adicional y los clientes solo pagan por el uso de los recursos de AWS, como las instancias EC2 puntuales y los volúmenes de EBS.

Para crear un clúster con un grupo de nodos gestionado mediante instancias puntuales, pase la --spot marca y una lista opcional de tipos de instancias:

eksctl create cluster --spot --instance-types=c3.large,c4.large,c5.large

Para crear un grupo de nodos administrado con instancias de spot en un clúster existente, sigue estos pasos:

eksctl create nodegroup --cluster=<clusterName> --spot --instance-types=c3.large,c4.large,c5.large

Para crear instancias de spot mediante grupos de nodos gestionados mediante un archivo de configuración:

# spot-cluster.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: spot-cluster region: us-west-2 managedNodeGroups: - name: spot instanceTypes: ["c3.large","c4.large","c5.large","c5d.large","c5n.large","c5a.large"] spot: true # `instanceTypes` defaults to [`m5.large`] - name: spot-2 spot: true # On-Demand instances - name: on-demand instanceTypes: ["c3.large", "c4.large", "c5.large"]
eksctl create cluster -f spot-cluster.yaml
nota

Los grupos de nodos no administrados no admiten los instanceTypes campos spot y, en cambio, el instancesDistribution campo se usa para configurar las instancias de spot. Consulte a continuación

Más información

Grupos de nodos no administrados

eksctltiene soporte para instancias puntuales a través de los grupos MixedInstancesPolicy de Auto Scaling.

A continuación, se muestra un ejemplo de un grupo de nodos que utiliza un 50% de instancias puntuales y un 50% de instancias bajo demanda:

nodeGroups: - name: ng-1 minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotInstancePools: 2

Ten en cuenta que el nodeGroups.X.instanceType campo no debe configurarse al instancesDistribution usarlo.

En este ejemplo se utilizan instancias de GPU:

nodeGroups: - name: ng-gpu instanceType: mixed desiredCapacity: 1 instancesDistribution: instanceTypes: - p2.xlarge - p2.8xlarge - p2.16xlarge maxPrice: 0.50

En este ejemplo, se utiliza la estrategia de asignación de puntos con capacidad optimizada:

nodeGroups: - name: ng-capacity-optimized minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotAllocationStrategy: "capacity-optimized"

En este ejemplo se utiliza la estrategia de asignación capacity-optimized-prioritized puntual:

nodeGroups: - name: ng-capacity-optimized-prioritized minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3a.small", "t3.small"] # At least two instance types should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 0 spotAllocationStrategy: "capacity-optimized-prioritized"

Usa la estrategia de capacity-optimized-prioritized asignación y, a continuación, establece el orden de los tipos de instancias en la lista de anulaciones de plantillas de lanzamiento, de mayor a menor prioridad (del primero al último de la lista). Amazon EC2 Auto Scaling respeta las prioridades de tipo de instancia haciendo todo lo posible, pero optimiza primero la capacidad. Esta es una buena opción para cargas de trabajo en las que se debe minimizar la posibilidad de interrupciones, pero también es importante preferir determinados tipos de instancias. Para obtener más información, consulte las opciones de compra de ASG.

Tenga en cuenta que el spotInstancePools campo no debe configurarse al usarlo. spotAllocationStrategy Si no spotAllocationStrategy se especifica, EC2 se utilizará la lowest-price estrategia de forma predeterminada.

He aquí un ejemplo mínimo:

nodeGroups: - name: ng-1 instancesDistribution: instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified

Para distinguir los nodos entre instancias puntuales o bajo demanda, puedes usar la etiqueta kubernetes, node-lifecycle que tendrá el valor spot o en on-demand función de su tipo.

Parámetros en Instances/Distribution

Consulte el esquema de configuración del clúster para obtener más información.