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