设置弹性伸缩-HPA策略
弹性伸缩-HPA(Horizontal Pod Autoscaling)是Kubernetes内置组件,实现Pod水平自动伸缩的功能。在Kubernetes社区HPA功能的基础上,增加了应用级别的冷却时间窗和扩缩容阈值等功能。
前提条件
仅容器部署方式部署的状态为“运行中”、“未就绪”的无状态组件,且部署环境下的CCE集群为1.15以上版本,支持设置弹性伸缩-HPA。查看组件状态,请参考查看组件详情。
设置弹性伸缩-HPA策略
- 登录ServiceStage控制台。
- 选择以下任意方式进入组件“伸缩”页面:
- 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。
- 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。
使用使用导入CCE工作负载创建组件方法创建的组件,如果未启用组件:
- 在弹出的对话框单击“确认”。
- 在“启用组件”页面,单击“启用”,等待组件完成重启。
- 在“伸缩”页面,单击“弹性伸缩 - HPA”右侧的,开启伸缩策略配置,进入“伸缩策略配置”页签。
- 单击“立即前往配置”,在云容器引擎控制台完成metrics-server插件安装。
为CCE集群安装metrics-server插件,请参考安装Metrics Server。
- 等待插件安装完成后,返回“伸缩策略配置”页面,刷新页面。
- 设置伸缩策略参数。
- 策略名称
长度为4到63个字符,可以包含英文小写字母、数字或中划线(-),必须以英文小写字母开头、以英文小写字母或数字结尾。
- 实例范围
根据实际业务需要,输入最小实例数和最大实例数。其中,最小实例数取值范围为1到299之间的整数;最大实例数取值范围为1到1500之间的整数,且必须大于最小实例数取值。
策略成功触发后,工作负载实例将在此实例范围内伸缩。
- 伸缩配置
- 系统默认:采用K8s社区推荐的默认行为进行负载伸缩。
- 自定义:可以自定义稳定窗口、步长、优先级等策略实现更灵活的配置,未配置的参数将采用K8s社区推荐的默认值。
- 触发条件
支持通过“界面配置”、“YAML配置”两种方式设置触发条件参数。
以“CPU利用率”、“内存利用率”为指标设置触发条件,需要已设置组件的“CPU配额”、“内存配额”。如果没有设置,请单击“去修改申请配额”,参考5设置组件“资源”参数后升级组件。
- “界面配置”方式
根据实际业务需要,设置“CPU利用率”、“内存利用率”指标的“期望值”和“阈值”(缩容阈值、扩容阈值)。
策略成功触发后,通过向上取整(当前CPU或内存利用率指标值 / 期望值 × 当前运行实例数)来计算需要伸缩的实例数。
- 当前CPU或内存利用率的指标值小于缩容阈值时,触发缩容。
- 当前CPU或内存利用率的指标值大于扩容阈值时,触发扩容。
- “YAML配置”方式
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等。
使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。
为CCE集群安装prometheus插件,请参考prometheus。
- “界面配置”方式
- 策略名称
- 单击“确定”,完成策略设置。