开发者学堂课程【5分钟玩转阿里云容器服务:容器弹性-如何基于自定义指标实现弹性】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1038/detail/15513
容器弹性-如何基于自定义指标实现弹性
内容介绍
一、基于自定义实现弹性 damo
本课内容是容器服务之自定义弹性,通过本课内容,掌握如何基于自定义指标实现弹性。
一、基于自定义实现弹性 damo
这个 damo 将介绍如何将阿里云 Prometheus 指标转换成 HPA 可用的自定义指标,从而为应用提供更加便捷的扩缩机制。
1.前提
使用自定义指标弹性的前提,是有一个已经正常运行的K8S集群。
并且集群当中,已经部署好阿里云 Prometheus 监控组件和阿里云 metrics adapter 组件,关于组件安装,不再赘述,可以参看帮助文档。
2. 部署工作负载
接下来,去部署工作负载。首先看一下工作负载的 yaml 。yaml 当中包含一个应用和一个 service,创建一下。
3. 创建 ServiceMonitor
接下来需要去 ARMS 控制台,创建一个 ServiceMonitor,点击 ARMS 控制台的跳转链接,
点击 Prometheus 监控下的 Prometheus 实例列表,
请注意左上角,选择和集群所在地域一致的地域。
然后在实例名称当中选择和集群名称一致的实例名称。
点击进入后,在左侧选择服务发现。
然后选择配置,配置下选择 service monitor 的 tab 页面。
选择添加 service monitor。
service monitor 的 yaml 已经准备好了。这是一个叫 sample- APP 的 service,
复制过来粘贴到 service monitor,点击确定。
可以看到已经在进行 service monitor 安装。
4. 确认监控状态
接下来确认一下监控状态,点击 Targets 后稍等片刻,如果出现 simple -APP 并且是 up 状态,就说明已经成功在阿里云 Prometheus 上监控到了所部署的应用。
刷新页面。可以找到部署的应用的名称的 Target。说明已经在阿里云 Prometheus当中监控到了 simple -APP 的应用。
5. 修改 matches adapt 配置
接下来需要回到 ack 控制台。需要在集成当中修改 matches adapt 的配置。
在应用 helm下面找到 matches adapt 组件。
点击更新,修改配置的目是为了把 Prometheus 的指标数据转换成 K8s 的自定义指标。下图是已经准备好的相关配置指标,rules下面是转换规则,点击确定。
6.检查转换结果
确定以后,需要去确定 Prometheus 的指标是否已经转换成 k8s 的自定义指标。通过 k8s 命令可以查看指标详情。
实际上指标已经转换成功。
7.创建 HPA
下一步创建一个 HPA。后续就可以看到自定义指标在 HPA 下的作用。HPA 当中,在 metrics 下面把转换而来的自定义指标写在了里面。
后续的扩缩会基于这个指标进行。HPA 现在已经创建好了。
8.更新 service
为了更好的看到效果,对 service 进行一个更新,更新成带有 load balance,以便进行压测,观察现象。找到服务,然后点击更新。
选择负载均衡类型,选择公网访问就可以了,点击更新。
9. 发压验证
外部端点已经有了,用47.111.92.1.8080去进行发压验证。
用的发压工具是 AB 工具。图中显示压力已经上去了。
通过 HPA 的指令查看,压力测试正常进行,targets 是500兆,现在是33兆,稍等片刻,压力已经上来了,目前是19293兆。
10. HPA 扩容
然后看一下 HPA,是否对它进行扩容动作。
HPA 已经扩容 simple-APP 的副本数,由1扩到了4,当然现在压力还是很高的,按照预期,应该还会继续扩,看到它已经从4扩到了8,最高是10,就不继续往下看了。因为已经看到关于自定义指标弹性伸缩的效果。
本次的 demo 演示到此结束。