帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
Amazon EKS 预置式控制面板
概述
Amazon EKS 预置式控制面板是一项功能,集群管理员可通过它从一系列扩展层级中进行选择,并为集群的控制面板指定所选层级,以此实现极高且可预期的性能表现。借助该功能,集群管理员能够确保控制面板始终按照指定的容量完成预置部署。
Amazon EKS 为集群的控制面板提供两种运行模式。默认情况下,Amazon EKS 集群采用标准模式。在此模式下,控制面板会根据工作负载需求自动进行纵向扩展与缩减。标准模式可动态分配充足的控制面板容量来满足工作负载需求,是适用于大多数使用案例的推荐方案。但对于部分特殊工作负载,比如无法容忍控制面板因扩缩而产生任何性能波动,或需要超大控制面板容量的场景,您可以选择启用预置模式。预置模式支持预先分配控制面板容量,让资源始终处于就绪状态,能够应对高负载的工作负载需求。
注意
预置模式是一种附加的控制面板运行模式,与默认的标准模式并行存在。预置模式的推出,不会改变标准模式的原有运行逻辑。
借助 EKS 预置式控制面板功能,集群管理员可以提前预置所需的控制面板容量,让集群控制面板始终保持可用状态,同时实现可预期的高性能表现。EKS 预置式控制面板还支持集群管理员在多环境中预置相同规格的控制面板容量,覆盖从测试环境、生产环境到灾难恢复站点的全场景。这一点至关重要,能够确保多环境下的控制面板性能一致且可预期。此外,EKS 预置式控制面板可提供超高规格的控制面板性能,支持您在 Kubernetes 上运行具备海量扩展能力的人工智能工作负载、高性能计算工作负载以及大规模数据处理工作负载。
所有现存及新建的 Amazon EKS 集群,均默认采用标准模式运行。对于对控制面板有高性能、可预期表现需求的集群,您可以选择启用 EKS 预置式控制面板功能。计费方面,除 EKS 标准支持或扩展支持的小时费外,您还需按所选控制面板扩展层级的小时费率支付费用。有关定价的更多信息,请参阅 Amazon EKS 定价
使用案例
EKS 预置式控制面板功能专为满足部分特定业务场景而设计,在这些场景中,控制面板的高性能与可预期表现对业务运行至关重要。了解这些使用案例,有助于您判断 EKS 预置式控制面板是否为适配自身工作负载的理想方案。
性能敏感型工作负载:对于要求 Kubernetes 控制面板具备极低延迟与极致性能的工作负载,EKS 预置式控制面板可提供充足容量,消除因控制面板扩缩操作引发的性能波动问题。
海量扩展型工作负载:若运行的工作负载具备极强的扩展属性(例如人工智能训练与推理、高性能计算、大规模数据处理),且这类负载需要集群内运行大量节点,EKS 预置式控制面板能够提供所需的控制面板容量,以此支撑这些高压力工作负载的运行。
可预期的高需求事件:当预判将出现控制面板请求量激增的情况时,例如电商大促活动、新品发布、节假日购物季,或是重大体育赛事、文娱活动期间,预置式控制面板允许提前对控制面板容量进行扩展。这种主动配置方式,可确保控制面板提前就绪,从容应对流量高峰,无需等待自动扩缩机制响应需求变化。
环境一致性:预置式控制面板支持您在测试环境与生产环境中配置相同的控制面板容量与性能规格,助力您在业务部署至生产环境前,尽早识别潜在问题。通过在多环境中保持一致的控制面板层级,测试结果能够精准反映生产环境的运行状态,从而降低业务上线时因性能问题引发意外状况的风险。
灾难恢复与业务连续性:在灾难恢复场景下,预置式控制面板允许您为失效转移环境配置与主环境同等水平的控制面板容量。这一配置可确保失效转移切换时,业务中断时间降至最低,且恢复速度更快。因为灾难恢复集群从启动的那一刻起,就具备与生产集群完全一致的控制面板性能特征。
控制面板扩展层级
EKS 预置式控制面板提供的扩展层级采用 T 恤尺码命名方式(XL、2XL、4XL)。每个层级均通过三项 Kubernetes 核心属性定义自身容量规格,而这三项属性决定了集群控制面板的性能特征。理解这些属性,有助于您根据自身工作负载需求选择合适的扩展层级。
API 请求并发量:衡量 Kubernetes 控制面板的 API Server 可同时处理的请求数量,这一指标对于高吞吐量工作负载至关重要。
容器组(pod)调度速率:表示默认 Kubernetes 调度器将容器组(pod)调度到节点的速度,单位为每秒调度容器组(pod)数。
集群数据库容量:表示为 etcd(存储集群状态/元数据的数据库)分配的存储空间大小。
当您通过预置式控制面板功能,为集群控制面板配置某一扩展层级时,Amazon EKS 会确保该控制控制面板维持与所选层级对应的各项限额。控制面板各扩展层级的限额会随 Kubernetes 版本不同而有所差异,具体信息详见下表。
EKS v1.28 及 v1.29
| 预置式控制面板扩展层级 | API 请求并发量(席位) | 容器组(pod)调度速率(个/秒) | 集群数据库容量(GB) |
|---|---|---|---|
|
XL |
1700 |
100 |
16 |
|
2XL |
3400 |
100 |
16 |
|
4XL |
6800 |
100 |
16 |
EKS v1.30 及更高版本
| 预置式控制面板扩展层级 | API 请求并发量(席位) | 容器组(pod)调度速率(个/秒) | 集群数据库容量(GB) |
|---|---|---|---|
|
XL |
1700 |
167 |
16 |
|
2XL |
3400 |
283 |
16 |
|
4XL |
6800 |
400 |
16 |
监控控制面板扩展层级使用率
Amazon EKS 提供多项指标,有助于您监控控制面板的扩展层级使用率。这些指标会以 Amazon CloudWatch 指标的形式发布,可通过 CloudWatch 控制台与 EKS 控制台进行查看。此外,您可以从 EKS 集群的 Prometheus 端点中采集这些指标(详见此处)。
| Prometheus 指标 | CloudWatch 指标 | |
|---|---|---|
|
API 请求并发数 |
apiserver_flowcontrol_current_executing_seats |
apiserver_flowcontrol_current_executing_seats |
|
容器组(pod)调度速率 |
scheduler_schedule_attempts_total |
scheduler_schedule_attempts_total、scheduler_schedule_attempts_SCHEDULED、scheduler_schedule_attempts_UNSCHEDULABLE |
|
集群数据库大小 |
apiserver_storage_size_bytes |
apiserver_storage_size_bytes |
理解层级容量与实际性能的区别
当您选定某一预置式控制面板扩展层级时,该层级的各项属性代表着 Amazon EKS 为集群控制面板配置的底层参数。但您最终获得的实际性能,取决于自身具体的工作负载模式、配置情况以及对 Kubernetes 最佳实践的遵循程度。例如,4XL 层级会将 API 优先级和公平性(APF)配置为支持 6800 个并发请求席位,但控制面板实际能达到的请求吞吐量,会受当前执行的操作类型影响。例如,Kubernetes 对 list 请求的资源消耗要求高于 get 请求,因此控制面板可并发处理的 list 请求有效数量,会低于 get 请求的并发处理数量(详见此处)。同理,虽然 4XL 层级会将默认调度器的每秒查询率(QPS)设置为 400,但实际的容器组(pod)调度速率,还会受节点是否处于就绪、健康的可调度状态等因素影响。若要实现最优性能,请确保应用程序遵循 Kubernetes 最佳实践规范(详见此处),并针对自身工作负载的特征完成合理配置。
注意事项
-
标准模式控制面板容量:EKS 标准模式控制面板具备出色的性价比,是绝大多数使用案例的推荐方案。但对于两类特殊工作负载,无法容忍控制面板因扩缩产生性能波动的负载,或是需要超大控制面板容量的负载,您可以选择启用预置模式。
-
需手动启用:现存集群不会从标准控制面板自动纵向扩展到更高资费
的 EKS 预置式控制面板层级。您必须明确启用其中一个全新的 EKS 预置式控制面板扩展层级。 -
回退限制:标准模式控制面板支持的集群数据库(etcd)容量上限为 8 GB。若在预置模式下的集群数据库容量超过 8 GB,则必须先将数据库容量降至 8 GB 以下,才能切换回标准模式。例如,若在预置模式下使用了 14 GB 的数据库存储空间,需先将数据库使用率降至 8 GB 以下,方可回退至标准模式。
-
无自动层级扩缩机制:EKS 预置式控制面板不支持跨层级自动扩缩。一旦选定某一扩展层级,集群控制面板将固定在该层级运行,以此保障性能的一致性与可预期性。不过,您可灵活搭建自定义的自动扩缩方案:通过监控层级使用率指标,当指标触发设定的阈值时,调用 EKS 预置式控制面板 API 执行纵向扩展或缩减操作,从而完全掌控扩缩策略与成本优化方向。
-
查看当前层级:您可通过 Amazon EKS 控制台、AWS 命令行界面(CLI)或 API,查看当前的控制面板扩展层级。在 CLI 中,可执行
describe-cluster命令:aws eks describe-cluster --name cluster-name -
层级切换耗时:您可通过 Amazon EKS 控制台、API 或 CLI,执行跨层级切换或退出预置模式的操作。Amazon EKS 新增了一种名为
ScalingTierConfigUpdate的集群更新类型,您可通过查看该更新类型的状态,监控层级切换进度。执行层级变更命令后,可列出集群的更新记录,此时会出现一条类型为ScalingTierConfigUpdate、状态为Updating的新记录。更新完成后,状态会变为Successful;若出现错误,状态则为Failed。更新记录的 error 字段会注明失败原因。层级切换的操作频率不受限制。控制面板切换过程通常需要数分钟完成。 -
选择最优层级:若要为集群选定最优的预置式控制面板扩展层级,可按如下步骤进行压力测试:先将集群预置在最高层级(4XL),再执行压力测试,模拟集群控制面板的峰值负载场景。观察峰值负载下的控制面板层级使用率指标,并以此为依据,选定适合预置模式的扩展层级。
-
预置式控制面板计费规则:集群将按预置式控制面板当前所属扩展层级的小时费率计费。该费用在标准支持或扩展支持的小时费基础上叠加收取。有关详细信息,请参阅 Amazon EKS 定价
页面。 -
更大规格扩展层级:若计划将集群运行在高于 4XL 的扩展层级,请联系亚马逊云科技客户经理,咨询额外的定价信息。
-
Kubernetes 版本与地域支持:EKS 预置式控制面板在所有亚马逊云科技商业区域、GovCloud 区域及中国区域均提供支持。预置式控制面板适用于 EKS v1.28 及更高版本。