3

一些背景:我每天、每周、每小时运行多个 cron 作业,其中一些需要强大的处理能力。我想向这些容器 cron pod 添加请求和限制,以尝试启用垂直扩展,并确保分配的节点在初始化时有足够的容量。这将防止我必须始终拥有多个可用的大型节点,并且还可以让我修改可以轻松并行运行的 crons 数量。我想尝试避免定时扩展,因为 cron 作业处理时间会随着应用程序的增长而增加。

编辑 - 附加信息:目前我正在使用 Digital Ocean 并利用它的 UI 进行集群自动缩放。我让它在部署时与 HPA 一起工作,但不是 crons。据我所知,向 crons 添加限制不会触发集群自动缩放。

我尝试使用 cron 启用 HPA 扩展,但没有成功。基本上它只是处于待处理状态,表明可用的 CPU 不足并且不会生成新节点。

HPA 扩展是否适用于 cron 作业 pod,有没有办法实现相同类型的扩展?

4

2 回答 2

1

HPA 用于在 pod 负载较高时扩展更多 pod,但这不会增加集群上的资源。

我认为您正在寻找集群自动扩缩器(在 AWS、GKE 和 Azure 上工作)并且会在无法安排 pod 时增加集群容量。

于 2020-12-18T11:34:43.070 回答
0

这是一个社区 Wiki 答案,因此请随时对其进行编辑并添加您认为重要的任何其他详细信息。

正如Dom已经提到的,“这不会增加集群上的资源”。更具体地说,它不会创建额外的节点,因为Horizo​​ntal Pod Autoscaler没有这种能力,实际上它与集群扩展无关。它的名字很不言自明。HPA 只能扩展Pods并且水平扩展它们,换句话说,它可以根据观察到的 CPU 利用率(或者,使用自定义指标支持,在其他一些应用程序提供的指标上)”根据文档

至于集群自动缩放,正如Dom已经说过的那样,此类解决方案在所谓的托管 kubernetes 解决方案中实现,例如 GCP 上的 GKE、AWS 上的 EKS 或 Azure 上的 AKS 等等。您通常不需要做任何事情来启用它们,因为它们是开箱即用的。

您可能想知道HPACA是如何结合在一起的。Cluster Autoscaler项目的常见问题解答部分对此进行了很好的解释:

Horizo​​ntal Pod Autoscaler 如何与 Cluster Autoscaler 一起使用?

Horizo​​ntal Pod Autoscaler 根据当前 CPU 负载更改部署或副本集的副本数。如果负载增加,HPA 将创建新的副本,集群中可能有也可能没有足够的空间。如果没有足够的资源,CA 会尝试启动一些节点,以便 HPA 创建的 pod 有运行的地方。如果负载减少,HPA 将停止一些副本。结果,一些节点可能会变得未充分利用或完全空置,然后CA将终止这些不需要的节点。

于 2020-12-18T15:57:26.823 回答