开发者学堂课程【5分钟玩转阿里云容器服务:容器弹性-如何使用 AHPA 解决弹性滞后问题】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1038/detail/15560
容器弹性-如何使用 AHPA 解决弹性滞后问题
内容介绍:
一、AHPA 概念
二、AHPA 的使用
一、AHPA 概念
AHPA (Advanced Horizontal Pod Autoscaler)基于应用历史指标预测未来 Pod 实例数量,解决弹性滞后的问题。通过主动预测和被动预测相结合实时调整资源实例数。
被动预测基于应用实时指标数据计算 Pod 数量,可以很好的应对突发流量;主动预测基于历史指标通过达摩院机器学习算法提前预测出未来24小时应用的实例数量。
此外,AHPA 增加了兜底保护策略。用户可以设置时间区间的实例数上下界值实现弹性兜底。下面,开始学习如何在 ACK 中使用 AHPA 弹性预测。
二、AHPA 的使用
1.安装 AHPA 组件
首先,安装 AHPA 组件。AHPA 支持 ACK 或 ASK 集群,这里面选择 ACK 集群。
选择运维管理,选择 AHPA 组件点击安装。
下图显示组件已经安装完成。
2. 配置指标源
接下来开始配置指标源。首先看一下指标源。可以通过创建 ConfigMap 配置 AHPA 指标源,很简单,直接配置一个 Prometheus 的地址即可。
下图为创建完成示意图。
3. 创建 AHPA CR 资源
(1)创建
接下来创建 AHPA CR 资源。
(2)资源内容
看一下 AHPA 资源包括哪些内容,下图可以看到它可以设置相应的指标源。指标类型可以设置 CPU,阈值是是50%。然后可以设置副本数最小值和最大值。另外,扩缩容的策略可以选择设置 observer 模式和 auto 模式。observer 模式可以理解为一个装热模式,通过这种模式可以去看它的预测趋势,是否做生效处理。一般刚上线应用的时候,建议先配置 observer 模式。
下面是对应作用在工作负载上,这里指定一个 daployment。再下面的内容指的是扩缩容边界设置,可以设置不同的时间段的最大最小值。
下面可以看到 AHPA 资源已经创建完成。
现在可以查看预测趋势,很简单,可以执行一个命令。这个命令可以指定它对应的AHPA 名称。
4.查看 AHPA
然后把它放到一个本地的 HTML 里面去看一下。下图可以看上面是它的 CPU 使用量,下面是它的 Pod 数,蓝色的是实际使用的量,绿色的表示通过 AHPA 预测的CPU 使用量,可以看到可以给的是比较足够的量。
然后下面的是 Pod 数,Pod 数图可以看到,绿色的值表示通过 AHPA 预测出来的Pod 数,可以用比较少的 Pod 数满足比较足够的 CPU 使用量。
5.生效
可以生效一下。修改 AHPA,设置它的模式为 auto 模式即可。设置完成。
下图可以看到通过 AHPA 已经生效了相应的 Pod 数。
今天的课程就到这里,如果有什么问题。在评论区留言,将在以后的课程中解答,下期课程将分享 Knative 基于请求的自动弹性。