创建工作负载伸缩策略
操作场景
工作负载伸缩提供HPA策略和CustomedHPA策略两种创建方式。两种策略的对比如下:
- HPA策略:即Horizontal Pod Autoscaling,是Kubernetes中实现POD水平自动伸缩的功能。该策略在kubernetes社区HPA功能的基础上,增加了应用级别的冷却时间窗和扩缩容阈值等功能。
- CustomedHPA策略:华为云自研的弹性伸缩增强能力,能够基于指标(CPU利用率、内存利用率)或周期(每天、每周、每月或每年的具体时间点),对无状态工作负载进行弹性扩缩容。主要功能如下:
- 支持按照当前实例数的百分比进行扩缩容。
- 支持设置一次扩缩容的最小步长。
- 支持按照实际指标值执行不同的扩缩容动作。
前提条件
HPA策略:
- 若使用系统指标,则必须安装metrics-server插件:
metrics-server:负责采集kubernetes集群中kubelet的公开指标项,包含CPU利用率、内存利用率。
- 若使用自定义指标,则必须安装prometheus插件,并需做额外的准备工作(详细步骤见采集自定义指标):
- prometheus:负责采集kubernetes集群中kubelet的公开指标项(CPU利用率、内存利用率)和用户自定义指标。HPA的弹性策略若基于自定义指标实现扩缩容,则必须安装此插件。
- 制作具有上报自定义指标到Prometheus的工作负载镜像。
- 在工作负载Deployment或Service中增加设置,将指标暴露给Prometheus。
- 确保monitoring命名空间下的配置项adapter-config中的规则能将Promethus的自定义指标转换为Kubernetes的指标。
CustomedHPA策略:
- cce-hpa-controller:支持按照当前实例数的百分比进行扩缩容;支持设置一次扩缩容的最小步长;支持按照实际指标值执行不同的扩缩容动作。创建CustomedHPA策略必须安装此插件。
- prometheus:负责采集kubernetes集群中kubelet的公开指标项(CPU利用率、内存利用率)和用户自定义指标。创建基于自定义指标的HPA策略和CustomedHPA策略必须安装此插件。
约束与限制
- HPA策略:仅支持1.13及以上版本的集群创建。HPA策略中自定义指标策略仅支持1.15及以上版本的集群,且需要安装prometheus插件才能使用。
- CustomedHPA策略:仅支持1.15及以上版本的集群创建。
- HPA策略和CustomedHPA策略不支持鲲鹏集群。
- 每个工作负载只能创建一个策略,即如果您创建了一个HPA策略,则不能再对其创建CustomedHPA策略或其他HPA策略,您可以删除该HPA策略后再创建。
创建HPA策略
- 在CCE控制台中,单击左侧导航栏的“弹性伸缩”,在“工作负载伸缩”页签下,单击“创建HPA策略”。
- 进入创建工作负载HPA策略页面,在“插件检测”步骤中:
- 若插件名称后方显示
,请单击插件后方的“现在安装”,根据业务需求配置插件参数后单击“立即安装”,等待插件安装完成。
- 若插件名称后方显示
,则说明插件已安装成功。
- 若插件名称后方显示
- 确认插件已安装成功后,单击“下一步:策略配置”。
如果插件已提前安装成功,单击“创建HPA策略”后,在“插件检测”步骤中经过短暂检测后将直接进入“策略配置”步骤。
- 在“策略配置”步骤中,参照表1设置策略参数。
表1 HPA策略参数配置 参数
参数说明
策略名称
新建策略的名称,请自定义。
集群名称
请选择工作负载所在的集群。
命名空间
请选择工作负载所在的命名空间。
关联工作负载
请选择要设置HPA策略的工作负载。
实例范围
请输入最小实例数和最大实例数。
策略触发时,工作负载实例将在此范围内伸缩。
冷却时间
请输入缩容和扩容的冷却时间,单位为分钟,缩容扩容冷却时间不能小于1分钟。
该设置仅在1.15及以上版本的集群中显示,1.13版本的集群不支持该设置。
策略成功触发后,在此缩容/扩容冷却时间内,不会再次触发缩容/扩容,目的是等待伸缩动作完成后在系统稳定且集群正常的情况下进行下一次策略匹配。
策略规则
策略规则可基于系统指标或自定义指标。
系统指标
- 指标:可选择“CPU利用率”或“内存利用率”。说明:
利用率 = 工作负载容器组(Pod)的实际使用量 / 申请量。
- 期望值:请输入期望资源平均利用率。
- 阈值:请输入缩容和扩容阈值。
自定义指标(仅在1.15及以上版本的集群中支持)
- 自定义指标名称:自定义指标的名称,输入时可根据联想值进行选择。
使用该功能需要您安装prometheus插件,采集自定义指标的方法及示例请参见采集自定义指标。
- 指标来源:在下拉框中选择对象类型,可选择“pod”、“service”。当对象类型为“pod”时,指标来源于工作负载的所有实例;当对象类型为“service”时,需要在旁边的下拉框中选择service对象。
- 期望值:若指标对象类型为“pod”,期望值表示期望的所有实例的指标平均值;若指标对象类型为“service”,期望值类型可选“值”和“平均值”,分别表示期望值和期望实例平均值。期望实例数=向上取整(当前值或平均值/期望值×当前实例数)
- 阈值:缩容和扩容的阈值。只有指标当前值在阈值范围外时会进行扩缩容。指标值大于缩容阈值且小于扩容阈值时,不会触发扩容或缩容。
您可以单击“添加策略规则”,设置多条伸缩策略。至少要有一条系统指标策略或自定义指标策略。
说明:HPA在计算扩容、缩容实例数时,会选择最近5分钟内的最大值。
- 指标:可选择“CPU利用率”或“内存利用率”。
- 设置完成后,单击“创建”,在“完成”步骤中若显示“创建工作负载策略***提交成功”,可单击“返回工作负载伸缩策略”。
- 在“工作负载伸缩”页签下,可以看到刚刚创建的HPA策略。图1 创建HPA策略
创建CustomedHPA策略
- 在CCE控制台中,单击左侧导航栏的“弹性伸缩”,在“工作负载伸缩”页签下,单击“创建CustomedHPA策略”按钮。
- 进入创建工作负载CustomedHPA策略页面,在“插件检测”步骤中:
- 若插件名称后方显示
,请单击插件后方的“现在安装”按钮,根据业务需求配置插件参数后单击“立即安装”,等待插件安装完成。
- 若插件名称后方显示
,则说明插件已安装成功。
- 若插件名称后方显示
- 确认插件已安装成功后,单击“下一步:策略配置”。
如果插件已提前安装成功,单击“创建CustomedHPA策略”按钮后,在“插件检测”步骤中经过短暂检测后将直接进入“策略配置”步骤。
- 在“策略配置”步骤中,参照表2设置策略参数。
表2 CustomedHPA策略参数配置 参数
参数说明
策略名称
新建策略的名称,请自定义。
集群名称
请选择工作负载所在的集群。
命名空间
请选择工作负载所在的命名空间。
关联工作负载
请选择要设置CustomedHPA策略的工作负载。
实例范围
请输入最小实例数和最大实例数。
策略触发时,工作负载实例将在此范围内伸缩。
冷却时间
请输入冷却时间值,单位为分钟。
策略成功触发后,在此冷却时间内,不会再次触发缩容/扩容,目的是等待伸缩动作完成后在系统稳定且集群正常的情况下进行下一次策略匹配。
策略规则
单击“添加策略规则”在弹出的窗口中设置伸缩策略参数:
- 规则名称:请输入规则名称,可自定义。
- 类型:可选择“指标触发”或“周期触发”。
指标触发
- 触发条件:请选择“CPU利用率”或“内存利用率”,选择“>”或“<”,并输入百分比的值。如图2中所示,则表示CPU利用率瞬时值 > 50% 时,立即执行此规则。
- 执行动作:与上述“触发条件”相对应,达到触发条件值后所要执行的动作,可添加多个执行动作。如图3中所示,当CPU利用率超过50%时将伸缩至5个实例,当超过70%时伸缩至8个实例,当超过90%时在8个实例基础上再增加10个实例。反之,按此规则执行缩容。
- 是否启用:可单击启用或关闭该策略规则。
周期触发
- 触发时间:可选择每天、每周、每月或每年的具体时间点,如设置为图4所示,则为每天17:00触发。
- 执行动作:与上述“触发时间”相对应,达到触发时间值后所要执行的动作。如图5中所示,即每天17:00时将执行减少4个实例的动作。
- 是否启用:可单击启用或关闭该策略规则。
单击确定后,您可以在“策略规则”列表中查看添加的规则,并可执行开启关闭、编辑、删除等操作。
单击“策略规则”列表下方的“添加策略规则”,可设置多条策略。
- 设置完成后,单击“创建”,在“完成”步骤中若显示“创建工作负载策略***提交成功”,可单击“返回工作负载伸缩策略”。
- 在“工作负载伸缩”页签下,可以看到刚刚创建的CustomedHPA策略。图6 创建CustomedHPA策略
