使用 EKS 自动模式控制将工作负载部署到 EC2 按需容量预留中 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

使用 EKS 自动模式控制将工作负载部署到 EC2 按需容量预留中

通过使用 EC2 按需容量预留(ODCR),您可以在特定可用区中为 Amazon EC2 实例预留计算容量达任意持续时间。使用 EKS 自动模式时,您可能想要控制是否将 Kubernetes 工作负载部署到这些预留实例上,以最大限度地利用预先购买的容量,或确保关键工作负载能够访问有保障的资源。

默认情况下,EKS 自动模式会在开放式 ODCR 中自动启动。但是,通过在 NodeClass 上配置 capacityReservationSelectorTerms,您可以显式控制工作负载使用的 ODCR。使用已配置的 ODCR 预置的节点将具有 karpenter.sh/capacity-type: reserved 并优先于按需和竞价型节点。启用此功能后,EKS 自动模式将不再自动使用开放式 ODCR – 其必须由 NodeClass 显式选择,这样您就可以精确控制集群中的容量预留使用情况。

警告

如果在集群中的 NodeClass 上配置了 capacityReservationSelectorTerms,则 EKS 自动模式将不再为集群中的任何 NodeClass 自动使用开放式 ODCR。

示例 NodeClass

apiVersion: eks.amazonaws.com/v1 kind: NodeClass spec: # Optional: Selects upon on-demand capacity reservations and capacity blocks # for EKS Auto Mode to prioritize. capacityReservationSelectorTerms: - id: cr-56fac701cc1951b03 # Alternative Approaches - tags: app: "my-app" # Optional owning account ID filter owner: "012345678901"

此示例 NodeClass 演示了两种选择 ODCR 的方法。第一种方法通过其 ID(cr-56fac701cc1951b03)直接引用特定 ODCR。第二种方法使用基于标签的选择,目标是带有标签 Name: "targeted-odcr" 的 ODCR。您还可以选择按拥有预留的 AWS 账户进行筛选,这在跨账户场景或使用共享容量预留时特别有用。