对于具有周期性业务波动的无状态应用程序,CronHPA(Cron 水平 Pod 自动扩展器)支持根据您设置的时间策略调整 Pods 的数量,从而使您能够根据可预测的业务模式优化资源使用。
您可以创建一个 Cron 水平 Pod 自动扩展器,以根据计划在特定时间指定要运行的 Pods 数量,从而为可预测的流量模式做好准备,或在非高峰时段减少资源使用。
在您创建 Cron 水平 Pod 自动扩展器后,平台将开始监控该计划,并在指定时间自动调整 Pods 的数量。这种基于时间的扩展独立于资源利用率指标,使其非常适合具有已知使用模式的应用程序。
CronHPA 通过定义一个或多个调度规则来工作,每个规则指定一个时间(使用 crontab 格式)和一个目标副本数。当达到预定时间时,CronHPA 将调整 Pod 数量以匹配指定的目标,而不考虑当前的资源利用率。
Cron 水平 Pod 自动扩展器(CronHPA)扩展了 Pod 自动扩展的概念,增加了基于时间的控制。CronHPA 允许您定义特定时间以更改 Pods 数量,从而为可预测的流量模式做好准备,或在非高峰时段减少资源使用。
CronHPA 通过持续检查当前时间与定义的调度进行工作。当达到预定时间时,控制器将调整 Pods 的数量以匹配该调度指定的目标副本数。如果多个调度在同一时间触发,平台将使用优先级更高的规则(即在配置中定义得更早的规则)。
请确保当前集群已部署监控组件,且监控组件正常运行。您可以通过单击平台右上角的 > 平台健康状态,以查看监控组件的部署和健康状态。来检查监控组件的部署和健康状态。
您可以通过定义 YAML 文件并使用 kubectl create
命令来创建 Cron 水平 Pod 自动扩展器。以下示例展示了一个 Deployment 对象的调度扩展:
cronhpa.yaml
的 YAML 文件,内容如下:此示例配置部署为:
进入 容器平台。
在左侧导航栏中,单击 工作负载 > 部署。
单击 部署名称。
向下滚动到 弹性扩展 部分,然后在右侧单击 更新。
选择 计划扩展,并配置扩展规则。当类型为 自定义 时,您必须提供触发条件的 Crontab 表达式,格式为 分钟 小时 日 月 星期
。有关详细介绍,请参见 编写 Crontab 表达式。
单击 更新。
重要说明:
分钟 小时 日 月 星期
),并遵循与 Kubernetes CronJobs 相同的规则。