前面学习有关弹性伸缩的论文以及k8s HPA的源码,对于云计算中弹性伸缩有了一些认识,总结一下。

弹性伸缩简介

伸缩理论关注的问题主要是在面临超出现有集群最大承载能力的时候,如何通过调整集群的规模以提高集群的承载能力,从而保证用户体验和系统服务的稳定性,同时在集群负载很低的时候,尽可能的减少闲置服务器带来的资源浪费。伸缩一般分为应用伸缩,技术伸缩以及资源伸缩。其中资源的伸缩性是指通过增加 CPU、内存等硬件资源的投入来提升软件效率以达到更高的系统性能。平常所说的集群伸缩方法大多数是指资源的伸缩性,而资源的伸缩性又可以划分为两个子类。从伸缩的方向划分,分为纵向的伸缩和横向的伸缩。

纵向伸缩是指通过提升系统当前各个节点的处理能力来达到提升系统整体处理能力的伸缩方法。提高各节点的处理能力具体来说包括服务器升级现有的配置,例如更换主频更高、多核的处理器,更换容量更大的内存条,配置读写速度更快的硬盘、甚至替换为更高端、更强劲的处理器等。
       横向伸缩是单纯地通过增加节点的数量来提升系统整体的处理能力。横向伸缩的优点在于当每台服务器成本比较低的情况下,可以很容易地搭建起一个系统性能有保障的集群,相比纵向伸缩集群,这个集群面对增加的用户量或者数据量带来的性能瓶颈可以处理得更灵活、游刃有余,并且能够很好的减少由于单台服务器出现故障而对于系统整体带来的影响。

弹性伸缩算法

大致分为两种:

基于阈值的响应式伸缩算法

周期性采集监测系统某些指标cpu,mem,io,net等,通过与设定阈值进行比较从而动态改变集群数量,k8s HPA策略基于该种算法实现,缺点是系统响应速度过慢,弹性伸缩变化往往晚于负载变化

基于预测型的伸缩算法

对于过去一段时间数据进行建模,对于未来某个时刻进行预测。

预测算法主要有机器学习以及时间序列分析。时间序列分析法主要有简单移动平均,指数平滑,自回归模型

1.简单移动平均法

对于过去一段时间的值进行平均代表未来的值,预测仅仅停留在过去水平,无法预测短时间较大波动。

2.指数平滑法

给与过去不同时间的值不同权重,距离较近则权重较大,距离较远则权重较小。一种短期时间序列的预测方法,具有计算量少、预测精度高的优点,同时该方法能充分利用全部历史数据,并且按照“重近轻远”的原则进行加权平均和修匀数据,能够较好地将时间序列所包含的历史规律挖掘出来。{yt}原始时间序列,对原始时间序列进行一次指数平滑:

进行二次指数平滑:

预测方程:

3.自回归模型

自回归模型指的是一类常用的随机时间序列分析模型,其基本思想是某些时间序列是依赖于时间的一系列时间变量,构成该时序的单个序列值虽然具有不确定性的,但是整个序列的变化趋势具有一定的规律性,因此可以用相应的数学模型近似描述。AR模型是应用最为广泛的时间序列模型,通过对历史观测值的建模,基本上能够对时间序列做出很好的预测,但是AR模型也具有一定的局限性,AR模型能够做出准确预测的前提是时间序列必须为平稳序列,因此在实际的应用场景中,对于非平稳序列常需要将其转化为平稳序列后才能使用。

4.灰度预测模型

灰色预测通过鉴别系统因素之间发展趋势的差异程度,对原始数据进行生成处理,寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势。灰色预测的数据是通过生成数据模型得到的预测值的逆处理结果。灰色预测以灰色模型为基础。灰色系统理论以“部分样本信息已知,部分样本信息未知”的“小样本”来进行预测的算法模型,该模型主要通过对部分未知信息的生成来开发和提取有价值的信息,从而实现对系统运行规律的正确认识和确切描述。基于灰色系统理论 GM(1,1)模型的预测方法称为灰色预测方法。灰色预测方法对于样本量小、变化规律不明显的样本有很好的适应性,同时灰色预测法的计算量小而且其定量分析结果和定性分析结果保持一致。

样本数据:

一次累加序列:

   

紧邻均值序列:

   

白花方程:

5.BP 神经网络预测模型

将正确的结果和产生的结果进行比较,得到误差,再逆推对神经网中的权重进行反馈修正,从而来完成学习的过程。

资源收集

无论是基于阈值还是基于预测算法都需要对于系统的性能指标进行收集处理

主要待收集的指标:

物理主机  cpu 内存  磁盘  网络,主机容器数量

容器  cpu,   内存,磁盘io,   网络

目前主流的指标收集技术有:

Docker容器原生API

Cadvisor收集容器数据信息

InfluxDB时序数据库

Grafana图形化展示

K8s HPA

HPA可以根据一定的性能指标自动监测以及控制集群的数量,使其满足一定的预定条件。默认使用cpu利用率来控制集群数量动态变化,同时也可以使用custom metrics来自定义指标。HPA支持的资源类型有Replication Controller, Deployment or Replica Set.

      

利用cpu利用率与预定的cpu利用率来进行伸缩

具体细节可以参考

https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

hpa源码解析可以参考

https://blog.csdn.net/u014106644/article/details/85004766

参考文献

[1]徐建中,王俊,周迅钊,徐雷.一种基于预测的云计算的弹性伸缩策略[J].计算机与数字工程,2018,46(06):1160-1162+1231.

[1]王强,王瑞刚,周德永.基于Docker的动态负载均衡弹性伸缩系统[J].计算机与数字工程,2018,46(06):1140-1144+1159.

[1]李正寅. 服务创新平台中基于Docker的弹性负载均衡功能的设计与实现[D].北京邮电大学,2018.

[1]刘彪,王宝生,邓文平.云环境下支持弹性伸缩的容器化工作流框架[J/OL].计算机工程:1-12[2018-12-14].https://doi.org/10.19678/j.issn.1000-3428.0049811.

[1]王天泽.基于灰色模型的云资源动态伸缩功能研究[J].软件导刊,2018,17(04):131-134.

[1]陈金光. 基于阿里云的Kubernetes容器云平台的设计与实现[D].浙江大学,2018.

[1]王晓钰. 基于云平台可弹性扩缩的Web应用系统的研究与实现[D].北京邮电大学,2018.

[1]刘锦福. 基于Docker的直播云平台弹性调度系统设计及实现[D].北京邮电大学,2018.

[1]梅荣.基于云计算的弹性负载均衡服务研究[J].中国公共安全,2018(01):194-199.

[1]王晓钰,吴伟明,谷勇浩.基于云平台的弹性Web集群扩缩容机制的研究[J].软件,2017,38(11):24-28.

[1]杨若琪.云计算中弹性伸缩负载预测算法的研究和改进[J].电子制作,2017(16):40-41+59

[1]张淼. 面向云服务的弹性调度算法的研究与实现[D].哈尔滨工业大学,2017.
[1]杨茂. 基于Kubernetes的容器自动伸缩技术的研究[D].西安邮电大学,2018.

Kubernetes30--弹性伸缩总结相关推荐

  1. 基于希克斯需求价格弹性计算_Serverless弹性伸缩的现状调研(超详细)

    作者:闲鱼技术--影湛 引言 闲鱼的服务端技术架构正向着云原生/Serverless化发展,Serverless具有着运维自动化.按需加载.弹性伸缩.强隔离性.敏捷开发部署等技术特点,带来了降低人力成 ...

  2. 达达集团智能弹性伸缩架构的设计与落地实践

    文章来源:架构头条,嘉宾 | 杨森,编辑 | 李忠良 面对节假日常规促销.618/ 双 11 购物节等配送业务订单量的暴增,达达集团通过智能弹性伸缩架构和精细化的容量管理,有效地做到了业务系统对配送全 ...

  3. AutoScaling 弹性伸缩附加与分离RDS实例

    阿里云弹性伸缩服务(AutoScaling)推出新功能:AttachDBInstances和DetachDBInstances.新功能使得您可以自由的对伸缩组附加和移除Rds实例. 本文将为您介绍如何 ...

  4. Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局

    传统弹性伸缩的困境 弹性伸缩是 Kubernetes 中被大家关注的一大亮点,在讨论相关的组件和实现方案之前.首先想先给大家扩充下弹性伸缩的边界与定义,传统意义上来讲,弹性伸缩主要解决的问题是容量规划 ...

  5. Kubernetes大集群怎么管?基于监控的弹性伸缩方法

    导语: 我们通常使用Prometheus来对Kubernetes运行情况进行监控.并根据监控数据来扩容或者缩容.通常的扩/缩容都是根据内存或者CPU的使用,但是很多时候我们扩/缩容的依据通常是业务监控 ...

  6. 笔记 - AliCloud Auto Scaling(弹性伸缩)简介

    有时高峰期的访问量预测不准, 所以提前准备ECS不是很work 弹性AS能根据CPU 使用率 来自动调整 ECS的数量 先找1台可用的ECS 创建1个镜像, 然后利用镜像创建新的ECS. AS 本身不 ...

  7. Fluid 给数据弹性一双隐形的翅膀 -- 自定义弹性伸缩

    作者 |  车漾 Fluid 社区 Commiter 谢远东 Fluid 社区 Commiter 来源 | 阿里巴巴云原生公众号 **导读:**弹性伸缩作为 Kubernetes 的核心能力之一,但它 ...

  8. Serverless 与容器决战在即?有了弹性伸缩就不一样了

    作者 | 阿里云容器技术专家 莫源   本文整理自莫源于 8 月 31 日 K8s & cloudnative meetup 深圳场的演讲内容.关注"阿里巴巴云原生"公众号 ...

  9. Kubernetes 弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源

    作者| 阿里云容器技术专家刘中巍(莫源) 导读:Kubernetes弹性伸缩系列文章为读者一一解析了各个弹性伸缩组件的相关原理和用法.本篇文章中,阿里云容器技术专家莫源将为你带来定时伸缩组件  kub ...

  10. Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性

    前言 在本系列的前三篇文章中,我们介绍了弹性伸缩的整体布局以及 HPA 的一些原理,HPA 的部分还遗留了一些内容需要进行详细解析.在准备这部分内容的期间,会穿插几篇弹性伸缩组件的最佳实践.今天我们要 ...

最新文章

  1. PowerDesigner的安装
  2. 启动vue项目报错:ENOSPC: System limit for number of file watchers reached, watch
  3. 新手玩家一定要学会配枪,使命召唤手游,对枪械是非常专业的
  4. Linux JDK升级
  5. 在线mod计算机,MOD大师教程 手把手教你改造电脑机箱
  6. 傅奎:十年安全路,一颗好奇心
  7. codeblocks哪个字体最舒服_如果给你一百万让你放弃一种美食永远不吃,你会放弃哪个?...
  8. docker 安装镜像失败_docker(mips 64)安装中文字符集失败
  9. android状态机是线程么,安卓StateMachine运行过程理解(翻译)
  10. React Fiber 了解一下
  11. vmware虚拟机i copied it 和 i moved it的区别
  12. 任务调度在分布式部署环境下保证task的正确运行
  13. oracle10g在win10上的安装
  14. 电动汽车V2G及直流母线在新能源微电网中的应用
  15. LabVIEW2018工具包分享
  16. UVM-factory机制
  17. 坦克大战Java项目四
  18. 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 3
  19. UE4 控制开关门基础之一
  20. 深度学习系列(二)显卡驱动升级篇(笔记)

热门文章

  1. 格力支持鸿蒙吗,董明珠万没想到,格力终将被美的超越,华为鸿蒙“功不可没”...
  2. 计算机组装维护安装光驱步骤,光驱怎么安装?教你如何正确安装光驱方法
  3. Air780E模块PPP应用开发指南
  4. qq互联android sdk,qq互联.Android_SDK_V2.0使用说明.doc
  5. 如何下载哔哩哔哩视频
  6. c语言编程身高体重测量,身高体重测量系统设计.doc
  7. vscode如何配置java环境_VSCode 配置Java环境
  8. linux测速脚本,七兮网络-Linux一键测速脚本Superspeed.sh,包含更多国内国际测速节点的脚本...
  9. 温度对二极管伏安特性的影响
  10. 三种常规用的矢量网络分析仪系统误差校准方法