是否可以在cron作业pod上使用Kubernetes自动缩放



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

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

我曾尝试用cron实现HPA扩展,但没有成功。基本上,它只是处于一个挂起的状态,表示可用CPU不足,并且不会生成新节点。

HPA扩展是否适用于cron作业吊舱?是否有实现相同类型扩展的方法?

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

我认为你正在寻找集群自动缩放器(适用于AWS、GKE和Azure(,当pod无法调度时,它将增加集群容量。

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

正如Dom已经提到的那样;这不会增加集群上的资源"更具体地说,它不会创建额外的节点,因为Horizontal Pod Autoscaler没有这样的功能而且事实上它与集群扩展无关。它的名字很有意思。HPA只能缩放Pods,并且可以水平缩放,换句话说,它可以自动增加或减少"的副本数量;基于观察到的CPU利用率的复制控制器、部署、副本集或有状态集(或者,在自定义度量支持的情况下,基于一些其他应用程序提供的度量(">根据文档。

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

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

Horizontal Pod Autoscaler如何与Cluster Autoscaler配合使用

Horizontal Pod Autoscaler更改部署或复制集基于当前CPU负载的副本数。如果负载增加时,HPA将创建新的复制副本,可能会群集中没有足够的空间。如果没有足够的资源,CA将尝试启用一些节点,以便HPA创建的pod具有跑步的地方。如果负载降低,HPA将停止一些复制品。因此,某些节点可能未得到充分利用,或者完全为空,然后CA将终止这些不需要的节点。

最新更新