Spot instances¶
eksctl
has support for spot instances through the MixedInstancesPolicy for Auto Scaling Groups.
Here is an example of a nodegroup that uses 50% spot instances and 50% on demand instances:
1 2 3 4 5 6 7 8 9 10 | nodeGroups: - name: ng-1 minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least two instance types should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotInstancePools: 2 |
Note that the nodeGroups.X.instanceType
field shouldn't be set when using the instancesDistribution
field.
This example uses GPU instances:
1 2 3 4 5 6 7 8 9 10 | nodeGroups: - name: ng-gpu instanceType: mixed desiredCapacity: 1 instancesDistribution: instanceTypes: - p2.xlarge - p2.8xlarge - p2.16xlarge maxPrice: 0.50 |
Here is a minimal example:
1 2 3 4 | nodeGroups: - name: ng-1 instancesDistribution: instanceTypes: ["t3.small", "t3.medium"] # At least two instance types should be specified |
Parameters¶
The parameters available in instancesDistribution
are:
type | required | default value | |
---|---|---|---|
instanceTypes | []string | required | - |
maxPrice | float | optional | on demand price |
onDemandBaseCapacity | int | optional | 0 |
onDemandPercentageAboveBaseCapacity | int [1-100] | optional | 100 |
spotInstancePools | int [1-20] | optional | 2 |