管理弹性伸缩-HPA策略
弹性伸缩-HPA(Horizontal Pod Autoscaling)是Kubernetes内置组件,实现Pod水平自动伸缩的功能。在Kubernetes社区HPA功能的基础上,增加了应用级别的冷却时间窗和扩缩容阈值等功能。
使用限制
- 仅使用以下方法创建并部署的组件,支持设置弹性伸缩-HPA策略:
- 组件“工作负载类型”必须为“无状态”。
- 组件状态为“运行中”或者“未就绪”。查看组件状态,请参考查看组件详情。
- 部署组件的环境下绑定的必须是1.15及以上版本的CCE集群。
创建弹性伸缩-HPA策略
- 登录ServiceStage控制台。
- 选择以下任意方式进入组件“伸缩”页面:
- 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 使用使用导入CCE工作负载创建组件方法创建的组件,如果未启用组件:
- 在弹出的对话框单击“确定”。
- 在“启用组件”页面,单击“启用”,等待组件完成重启。
- 单击“弹性伸缩”右侧的
,开启伸缩策略配置,进入“创建伸缩策略配置”页面。
- 单击“去安装”,参考安装Metrics Server插件,完成metrics-server插件安装。
等待插件安装完成,“状态”为“运行中”,表示插件安装成功。
- 返回“创建伸缩策略配置”页面。
- 单击“刷新”,刷新页面。
- 设置HPA伸缩策略参数。
- 策略名称
长度为4到63个字符,可以包含英文小写字母、数字或中划线(-),必须以英文小写字母开头、以英文小写字母或数字结尾。
- 冷却时间
根据实际业务需要,输入扩容/缩容冷却时间。单位为分钟,缩容扩容冷却时间不能小于1分钟。
策略成功触发后,在此缩容/扩容冷却时间内,不会再次触发缩容/ 扩容,目的是等待伸缩动作完成后在系统稳定且集群正常的情况下进行下一次策略匹配。
- 实例数范围
根据实际业务需要,输入最小实例数和最大实例数。其中,最小实例数取值范围为1到299之间的整数;最大实例数取值范围为1到1500之间的整数,且必须大于最小实例数取值。
策略成功触发后,工作负载实例将在此实例范围内伸缩。
- 伸缩配置
- 系统默认:采用K8s社区推荐的默认行为进行负载伸缩。
- 自定义:自定义扩/缩容配置的稳定窗口、步长、优先级等策略,实现更灵活的配置。未配置的参数将采用K8s社区推荐的默认值。
- 禁止扩容/缩容:选择是否禁止扩容或者缩容。
- 稳定窗口:需要伸缩时,会在一段时间(设定的稳定窗口值)内持续检测,如在该时间段内始终需要进行伸缩(不满足设定的指标期望值)才进行伸缩,避免短时间的指标抖动造成异常。
- 步长策略:扩/缩容的步长,可设置一定时间内扩/缩容实例数量或百分比。在存在多条策略时,可以选择使实例数量最多或最少的策略。
- 触发条件
支持通过“界面配置”、“YAML配置”两种方式设置触发条件参数。
以“CPU利用率”、“内存利用率”为指标设置触发条件,需要已设置组件的“CPU配额”或者“内存配额”。
如果没有设置,请单击“去修改申请配额”,设置组件“资源”参数后升级组件:您可以根据需要自定义“CPU配额”和“内存配额”,设置组件运行可以使用的最大/最小CPU核数(Core)和内存数量(GiB),从而选择性地为每个组件的实例设定所需要的资源数量。升级组件,请参考使用单批发布方式升级组件版本配置。
- “界面配置”方式
- “YAML配置”方式
使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。
为CCE集群安装prometheus插件,请参考prometheus。metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 50 - type: Pods pods: metric: name: packets-per-second target: type: AverageValue averageValue: 1k - type: Object object: metric: name: requests-per-second describedObject: apiVersion: networking.k8s.io/v1beta1 kind: Ingress name: main-route target: type: Value value: 10k
如以上示例所示,使用YAML格式除了使用CPU(cpu)、内存(memory)的利用率(Utilization)作为指标外,还可以自定义指标参数配置,并支持更多指标,如Pods、Object、External等。
- 策略名称
- 单击“立即创建”,完成伸缩策略创建。
修改弹性伸缩-HPA策略
- 登录ServiceStage控制台。
- 选择以下任意方式进入组件“伸缩”页面:
- 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 在“伸缩”页面,选择“伸缩策略配置”页签,单击“编辑”,重新设置参数。
- 冷却时间
根据实际业务需要,输入扩容/缩容冷却时间。单位为分钟,缩容扩容冷却时间不能小于1分钟。
策略成功触发后,在此缩容/扩容冷却时间内,不会再次触发缩容/ 扩容,目的是等待伸缩动作完成后在系统稳定且集群正常的情况下进行下一次策略匹配。
- 实例数范围
根据实际业务需要,输入最小实例数和最大实例数。其中,最小实例数取值范围为1到299之间的整数;最大实例数取值范围为1到1500之间的整数,且必须大于最小实例数取值。
策略成功触发后,工作负载实例将在此实例范围内伸缩。
- 伸缩配置
- 系统默认:采用K8s社区推荐的默认行为进行负载伸缩。
- 自定义:自定义扩/缩容配置的稳定窗口、步长、优先级等策略,实现更灵活的配置。未配置的参数将采用K8s社区推荐的默认值。
- 禁止扩容/缩容:选择是否禁止扩容或者缩容。
- 稳定窗口:需要伸缩时,会在一段时间(设定的稳定窗口值)内持续检测,如在该时间段内始终需要进行伸缩(不满足设定的指标期望值)才进行伸缩,避免短时间的指标抖动造成异常。
- 步长策略:扩/缩容的步长,可设置一定时间内扩/缩容实例数量或百分比。在存在多条策略时,可以选择使实例数量最多或最少的策略。
- 触发条件
支持通过“界面配置”、“YAML配置”两种方式设置触发条件参数。
以“CPU利用率”、“内存利用率”为指标设置触发条件,需要已设置组件的“CPU配额”或者“内存配额”。
如果没有设置,请单击“去修改申请配额”,设置组件“资源”参数后升级组件:您可以根据需要自定义“CPU配额”和“内存配额”,设置组件运行可以使用的最大/最小CPU核数(Core)和内存数量(GiB),从而选择性地为每个组件的实例设定所需要的资源数量。升级组件,请参考使用单批发布方式升级组件版本配置。
- “界面配置”方式
- “YAML配置”方式
使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。
为CCE集群安装prometheus插件,请参考prometheus。metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 50 - type: Pods pods: metric: name: packets-per-second target: type: AverageValue averageValue: 1k - type: Object object: metric: name: requests-per-second describedObject: apiVersion: networking.k8s.io/v1beta1 kind: Ingress name: main-route target: type: Value value: 10k
如以上示例所示,使用YAML格式除了使用CPU(cpu)、内存(memory)的利用率(Utilization)作为指标外,还可以自定义指标参数配置,并支持更多指标,如Pods、Object、External等。
- 冷却时间
- 单击“确定”,完成修改。
查看弹性伸缩-HPA策略运行情况
- 登录ServiceStage控制台。
- 选择以下任意方式进入组件“伸缩”页面:
- 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 在“伸缩”页面:
- 选择“状态”页签,查看策略运行状态。
- 选择“事件”页签,查看策略运行中发生的事件。
关闭弹性伸缩-HPA策略
关闭弹性伸缩-HPA策略后,所有数据将清空,请谨慎操作。
- 登录ServiceStage控制台。
- 选择以下任意方式进入组件“伸缩”页面:
- 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 在“伸缩”页面,单击“弹性伸缩”右侧的
。
- 单击“确定”,完成弹性伸缩-HPA策略关闭。