自定义服务自动扩缩容
更新时间:2024-11-28
如果业务负载出现显著的波峰波谷,为了避免资源浪费,您可以开启弹性扩缩容或定时扩缩容功能,根据业务负载的变化配置扩缩容策略,平台将自动调整服务的实例数量,实现计算资源的动态管理,确保业务平稳运行并提高资源利用率。
使用前提
使用弹性扩缩容功能前,需要先配置采集任务,具体步骤如下:
- 在“Prometheus服务”中创建一个监控实例。若当前已经存在监控实例了,则可跳过此步骤;
- 在容器引擎CCE”中,将CCE集群接入此监控实例。若容器引擎CCE 已接入实例,可跳过此步骤。
- 在“Prometheus服务” 此监控实例详情的采集配置中选择对应的 CCE 集群,禁用 “inferring-job” 采集任务;
使用此脚本创建一个新采集任务,内容无需修改。
job_name: inferring-job-hpa
honor_timestamps: true
metrics_path: /metrics
scheme: http
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
separator: ;
regex: (https?)
target_label: __scheme__
replacement: $1
action: replace
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
separator: ;
regex: "true"
replacement: $1
action: keep
- source_labels: [__meta_kubernetes_pod_label_component]
separator: ;
regex: predictor
replacement: $1
action: keep
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
separator: ;
regex: (.+)
target_label: __metrics_path__
replacement: $1
action: replace
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
separator: ;
regex: ([^:]+)(?::\d+)?;(\d+)
target_label: __address__
replacement: $1:$2
action: replace
- source_labels: [__meta_kubernetes_namespace]
separator: ;
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
separator: ;
action: replace
target_label: kubernetes_pod_name
- separator: ;
regex: __meta_kubernetes_pod_label_(.+)
replacement: $1
action: labelmap
- separator: ;
regex: (.+)_revision_hash|(.+)_template_generation
replacement: $1
action: labeldrop
kubernetes_sd_configs:
- role: pod
开始使用
弹性扩缩容
- 登录百舸异构计算平台AIHC控制台
- 进入需要扩缩容的服务详情页面,点击 自动扩缩容 页签,开启 弹性扩缩容 开关(首次使用需要安装弹性扩缩容组件)
参数 | 描述 |
---|---|
常规指标 | 平台提供GPU、CPU、内存利用率常规指标。 |
自定义指标 | 如需根据业务逻辑设置一些自定义的监控指标,请参考此文档自定义监控指标 |
最小实例数 | 弹性扩缩容可缩容到的最小POD实例数,可选范围1-1000,默认值1 |
最大实例数 | 弹性扩缩容可扩容到的最多POD实例数,可选范围1-1000,默认值1 |
扩容生效时长 | 指定从扩容指令下达开始到扩容实际生效所需的时长,如果在此期间系统检测到业务负载恢复正常,将会取消扩容指令。可输入范围0-300秒,默认值0秒 |
缩容生效时长 | 指定从缩容指令下达开始到缩容实际生效所需的时长,如果在此期间系统检测到业务负载恢复正常,将会取消缩容指令,并且每隔5分钟检查一次,直到单实例TPS或QPS小于目标值再开始缩容。可输入范围0-300秒,默认值300秒 |
定时扩缩容
- 登录百舸异构计算平台AIHC控制台
- 进入需要扩缩容的服务详情页面,点击 自动扩缩容 页签,开启 定时扩缩容 开关(首次使用需要安装定时扩缩容组件)
参数 | 描述 |
---|---|
目标实例数 | 设置定时周期内需要扩缩容的预期实例数 |
定时周期 | 定时执行时间,支持以下多种方式。每天:设置每天定时执行自动扩缩容的时间。每周:设置每周定时执行自动扩缩容的时间。每月:设置每月定时执行自动扩缩容的时间。Cron表达式:采用Cron语句进行时间配置,通过秒、分钟、小时、日期、月份、星期指定自动扩缩容的时间。 |
Cron表达式
参数说明
名称 | 可用值 | 可输入特殊符号 |
---|---|---|
秒 | 0-59 | */,- |
分钟 | 0-59 | */,- |
小时 | 0-23 | */,- |
日 | 1-31 | */,-? |
月 | 1-12 | */,- |
星期 | 0-6 | */,-? |
特殊字符说明
- 星号 (*) 表示表达式能匹配该字段的所有值。如在第5个字段使用星号(month),表示每个月。
- 斜线(/) 表示增长间隔,如第1个字段(minutes) 值是 3-59/15,表示每小时的第3分钟开始执行一次,之后每隔 15 分钟执行一次(即 3、18、33、48 这些时间点执行),这里也可以表示为:3/15
- 逗号(,) 用于枚举值,如第6个字段值是 MON,WED,FRI,表示 星期一、三、五 执行。
- 连字号(-) 表示一个范围,如第3个字段的值为 9-17 表示 9am 到 5pm 直接每个小时(包括9和17))
- 问号(?) 只用于日(Day of month)和星期(Day of week),\表示不指定值,可以用于代替 *
Cron举例说明
- 每隔5秒执行一次:/5 * * * ?
- 每隔1分钟执行一次:0 /1 * * ?
- 每天凌晨1点执行一次:0 0 1 * * ?
- 每月1号凌晨1点执行一次:0 0 1 1 * ?
- 在26分、29分、33分执行一次:0 26,29,33 * * * ?
- 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?