1. CronHPA的基本原理 1.1 Cron表达式 CronHPA使用Cron表达式来定义调整副本数量的时间表。Cron表达式是一种时间表达方式,它由6个字段组成,分别表示分钟、小时、日期、月份、星期和年份。通过设置这些字段的值,用户可以定义副本数量的调整时间。 1.2监控指标 CronHPA还需要监控指标来判断是否需要调整副本数量。监控指标可以...
看一下kubernetes-cronhpa-controller对cronhpa和hpa共存伸缩的源码。 1. 源码入口 在执行定时任务的时候,对cronhpa.TargetRef.Kind="HPA"单独处理: // pkg/controller/cronjob.go func (ch *CronJobHPA) Run() (msg string, err error) { startTime := time.Now() times := 0 for { now := time.Now...
在一些复杂的业务场景下,可能有固定时间段高峰业务,又有日常突发高峰业务。此种情况下,用户既期望能定时弹性伸缩应对固定时间段高峰业务,又期望能根据指标弹性伸缩应对日常突发高峰业务。CCE提供CronHPA的自定义资源,实现在固定时间段对集群进行扩缩容,并且可以和HPA
容器定时水平自动伸缩(CronHPA)是对HPA的一种补充,对于有固定时间段高峰期的业务,可以提前将容器的实例数量扩容完毕,防止业务流量突发造成性能不足,导致业务延迟。而在业务低谷时,触发定时回收资源。 在某些业务场景下,存在突发流量的同时,又具有明显的波峰波谷,若同时配置CronHPA和HPA两种策略,可能出现如下情况:在业务高...
ack-kubernetes-cronhpa-controller是一个Kubernetes HPA Controller,按照类似Crontab的策略定时地对集群进行扩缩容。您可以将CronHPA使用于 Kubernetes中任何支持scale子资源的对象(例如Deployment和StatefulSet)。详细信息,请参见kubernetes-cronhpa-controller。 以下示例对CronHPA的各个字段进行解释说明。 apiVersion: autoscalin...
CronHPA(Cron Horizontal Pod Autoscaler)是一款基于时间调度的Kubernetes水平Pod自动扩缩容工具。它通过结合Cron表达式和HPA(Horizontal Pod Autoscaler)功能,允许用户根据预定义的时间计划自动调整应用的Pod副本数量。 CronHPA特别适用于具有明显周期性流量波动的场景,例如电商促销、定时任务处理等,能够帮助用户在高峰期提前扩容...
通过控制台创建CronHPA策略 进入集群内,在组件管理中安装CronHPA组件,并确保CronHPA资源运行正常 进入自动伸缩-CronHPA页面,为已有工作负载创建CronHPA规则;deployment-demo在每分钟第0秒将副本数调为3,在每分钟第30秒将副本数调为1 进入CronHPA规则内查看扩缩容记录 ...
其实原生的HPA是不支持根据时间点来进行扩缩容的,根据时间点扩缩容其实在有些场景下还是蛮实用的,因为根据资源扩缩容无法精准控制,像在大数据领域,跑任务的时间段一般是明确的,这样我们就可以根据跑任务的时间段来进行pod扩缩容,这样就非常精准的控制资源使用了。这里主要介绍阿里开源的一个产品kubernetes-cronhpa-control...
CronHPA基于kubernetes-cronhpa-controller实现。kubernetes-cronhpa-controller是一个基于时间的Pod水平伸缩Controller,按照类似Crontab的策略定时地对集群进行扩缩容,例如在工作日的业务高峰期自动增加Pod数量,在业务低谷时自动减少Pod数量。CronHPA可以作用于任何支持伸缩子资源(Scale Subresource)的Kubernetes对象,例如Deployment、...
git clone https://github.com/AliyunContainerService/kubernetes-cronhpa-controller.git 3.2 安装 install CRD kubectl apply -f config/crds/autoscaling_v1beta1_cronhorizontalpodautoscaler.yaml install RBAC settings # create ClusterRolekubectl apply-f config/rbac/rbac_role.yaml# create ClusterRolebinding ...