Amazon ec2 自动缩放组无法分配spot实例

Amazon ec2 自动缩放组无法分配spot实例,amazon-ec2,autoscaling,amazon-eks,amazon-ec2-spot-market,eksctl,Amazon Ec2,Autoscaling,Amazon Eks,Amazon Ec2 Spot Market,Eksctl,我有一个eks群集,其中节点组基于混合实例分发启动模板,配置如下: region: us-west-2 instance_distribution: [p2.xlarge, p3.2xlarge, p2.8xlarge] max_price: 0.9 on_demand_percentage_above_base_capacity: 0 on_demand_base_capacity: 0 spot_instance_pools: 2 在将自动缩放从0缩放到1时,群集自动缩

我有一个eks群集,其中节点组基于混合实例分发启动模板,配置如下:

region: us-west-2  
instance_distribution: [p2.xlarge, p3.2xlarge, p2.8xlarge]  
max_price: 0.9  
on_demand_percentage_above_base_capacity: 0  
on_demand_base_capacity: 0  
spot_instance_pools: 2
在将自动缩放从0缩放到1时,群集自动缩放器遇到以下问题:

Launching a new EC2 instance. Status Reason: Could not launch Spot Instances. SpotMaxPriceTooLow - Your Spot request price of 0.9 is lower than the minimum required Spot request fulfillment price of 0.918. Launching EC2 instance failed. 
At the time, the spot price of p3.2xlarge happened to be 0.918. 
似乎是请求购买现货p3.2xlarge,而不是请求购买按需p2.xlarge实例(尽管p2.xlarge的按需价格0.9低于p3.2xlarge的现货价格0.918)。我希望按需分配p2.xlarge实例,而不是请求p3.2xlarge spot实例。是因为我配置了
按需\u高于基本容量的百分比\u:0

更一般地说,我希望能够配置集群以获取p2.xlarge的spot实例,并在不可能的情况下请求按需访问。实现所需功能的最佳配置是什么

是否严格执行按需按百分比高于基本容量的配置?如果按需按需按百分比(高于基本容量)设置为1,并且我的第一个实例是按需实例,那么我接下来的几个扩展请求是否会被迫只生成现货实例,或者更像是带有指导原则的权重(例如,如果没有现货可用,它仍将返回按需实例,而不是无法满足请求)?

TL;博士 当没有可用的spot时,AutoScaling不会故障切换到按需,但会尝试将spot容量故障转移到其他spot实例类型和可用性区域

我希望按需分配p2.xlarge实例,而不是请求p3.2xlarge spot实例。是不是因为我配置了按需按百分比高于基本容量:0

没错,当您将两个按需设置都设置为0时,自动缩放组(ASG)将永远不会尝试启动按需实例。当使用混合实例策略时,ASG将首先计算要启动的spot与OnDemand实例的数量,然后再做出任何其他决定。请参见AWS文档,以了解其工作原理的一些详细示例。

更一般地说,我希望能够配置集群以获取p2.xlarge的spot实例,并在不可能的情况下请求按需访问。实现所需功能的最佳配置是什么

用ASG是不可能做到的。如果将ASG配置为仅启动spot实例,则它不会故障切换到ondemand。类似地,如果你把它设置为50%现货,50%按需,如果没有现货,它仍然不会转移到按需。它只会推出随需应变的一半,然后继续尝试推出现货的一半。防止容量问题发生的最佳方法是: 1) 启用更多实例类型和可用性区域(因为每个实例类型的每个区域都有不同的容量池) 2) 不要设定最高现货价格。现货价格永远不会超过即期价格。您可能还希望查看新功能,在该功能中,您可以向选择的实例类型添加权重:

是否严格执行按需按百分比高于基本容量的配置

如果按需\u百分比\u高于\u基本\u容量设置为1,并且我的第一个实例是按需实例,我接下来的几个扩展请求是否会被迫只生成现货实例

假设您设置了按需基本容量:0 如果您将percent_up_base设置为1,ASG将按需创建第一个实例(ASG总是向更多按需取整),接下来的99个实例将是spot,然后是1个按需,等等。当没有spot容量时,ASG将不会故障切换到按需;博士 当没有可用的spot时,AutoScaling不会故障切换到按需,但会尝试将spot容量故障转移到其他spot实例类型和可用性区域

我希望按需分配p2.xlarge实例,而不是请求p3.2xlarge spot实例。是不是因为我配置了按需按百分比高于基本容量:0

没错,当您将两个按需设置都设置为0时,自动缩放组(ASG)将永远不会尝试启动按需实例。当使用混合实例策略时,ASG将首先计算要启动的spot与OnDemand实例的数量,然后再做出任何其他决定。请参见AWS文档,以了解其工作原理的一些详细示例。

更一般地说,我希望能够配置集群以获取p2.xlarge的spot实例,并在不可能的情况下请求按需访问。实现所需功能的最佳配置是什么

用ASG是不可能做到的。如果将ASG配置为仅启动spot实例,则它不会故障切换到ondemand。类似地,如果你把它设置为50%现货,50%按需,如果没有现货,它仍然不会转移到按需。它只会推出随需应变的一半,然后继续尝试推出现货的一半。防止容量问题发生的最佳方法是: 1) 启用更多实例类型和可用性区域(因为每个实例类型的每个区域都有不同的容量池) 2) 不要设定最高现货价格。现货价格永远不会超过即期价格。您可能还希望查看新功能,在该功能中,您可以向选择的实例类型添加权重:

是否严格执行按需按百分比高于基本容量的配置

如果按需\u百分比\u高于\u基本\u容量设置为1,并且我的第一个实例是按需实例,我接下来的几个扩展请求是否会被迫只生成现货实例

假设您设置了按需基本容量:0 如果将percent_Over_base设置为1,ASG将按需创建第一个实例(ASG总是向更多按需进行取整),下一个99将是spot,然后是1 on demand,等等。当没有spot容量时,它将不会故障切换到on demand