具有现货的 EKS Cluster Autoscaler 已降级节点组

5 amazon-web-services autoscaling kubernetes amazon-eks aws-auto-scaling

挑战

现货节点组的扩展失败并出现 AsgInstanceLaunchFailures,因为它“无法启动 Spot 实例。UnfulfillableCapacity - 由于您的请求配置而无法满足容量。请调整您的请求并重试。启动 EC2 实例失败。”

发生该错误后,节点组将降级并且不再调度新实例。

我该如何解决这个问题,以便在实例再次可用时节点组可以正常工作?

EKS Web 界面中的错误图像

设置

我利用terraform-aws-eks-blueprints-repo并为自己构建了一个 EKS 集群。集群具有以下受管节点组。

  • 现货 - eu-central-1 - a
  • 现货 - eu-central-1 - b
  • 现货 - eu-central-1 - c
  • 点播 - eu-central-1 - a
  • 点播 - eu-central-1 - b
  • 点播-eu-central-1-c

最重要的是,我将其配置cluster-autoscaler-priority-expander为首先使用点,然后按需使用。

2022-05-13 更新:我刚刚使用过m5.large,现在添加了更多类型来解决该问题。有了这个扩展集,到目前为止似乎没有问题。我仍然非常想知道如何解决这个问题,好像 SPOT 根本不可用,我的集群就会失败......这不是一个好的前景。

2022-05-19 更新:我与 AWS 进行了交谈,他们声称这是一个到目前为止还没有解决方案的问题。由于自动缩放组没有“降级”,集群自动缩放器只是认为它是“降级”。对我来说,这听起来像是想要进入的障碍......所以,如果有人有解决方案,我会持开放态度。

obo*_*obo 0

根据 AWS 文档:

https://docs.aws.amazon.com/eks/latest/userguide/management-node-groups.html

为了在使用 Spot 实例时最大限度地提高应用程序的可用性,我们建议您将 Spot 托管节点组配置为使用多种实例类型。我们建议在使用多种实例类型时应用以下规则:

在托管节点组中,如果您使用集群自动缩放器,我们建议使用一组具有相同 vCPU 和内存资源的灵活实例类型。

https://aws.amazon.com/premiumsupport/knowledge-center/eks-spot-instance-best-practices/

例如,对于 m5.large(2 vCPU/8 GiB RAM)实例类型,添加具有相同 vCPU 和 RAM 值的实例类型,例如 m5a.large、m5n.large 和 m4.large。

所选实例类型应具有相同的 vCPU 和 RAM 值。