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