【技术实现步骤摘要】
一种基于使用量预测的容器资源动态调度方法及系统
[0001]本专利技术涉及容器资源调度
,具体涉及一种基于使用量预测的容器资源动态调度方法及系统。
技术介绍
[0002]目前,越来越多的应用程序被部署在容器中。通常,为了使托管的应用程序可以安稳运行,我们都会为其调配充足的资源。但大多数情况下托管的应用程序不是以最高负载的状态运行,并且CPU、内存等各项资源也不会同时处于最高负载的状态,因此预先调配的资源在大多数时候会处于空闲状态,从而造成了资源的浪费。此外当应用处在负载较高的状态,预先分配的资源也不一定够用。目前容器中的应用都是依靠宿主机的操作系统进行资源分配、限制和设置权重。这样做会出现的问题就是:每个容器的资源分配权重和限制都是一开始固定的,不能进行动态调整,很容易造成资源的浪费以及出现资源不足的情况。
[0003]为了解决此类问题,在云计算中通常使用特定的预测算法来预测虚拟机和应用的资源需求,并提前做好资源分配优化,来提高资源的使用率和服务质量,帮助提前做好资源分配,优化Docker的资源管理。在现有的Kubernetes系统中,资源调度的工作主要由Scheduler组件负责。在应用首次被调度时,由Scheduler根据应用的资源配置情况,在集群内所有的Node节点上选择一个最适合的Node节点来部署,即静态调度策略,该调度机制虽然简单,却缺乏灵活性。首先,该机制只能在应用初次部署时进行资源配置,无法在应用运行时按需对已分配的资源进行动态调整,这样会导致主机资源使用率低。其次,由于缺乏对资源使用情 ...
【技术保护点】
【技术特征摘要】
1.一种基于使用量预测的容器资源动态调度方法,其特征在于,包括步骤:设置扩容或者缩容的阈值,并且设置缩容判断次数的阈值以及监控周期;监控集群中的容器和每一个节点的资源使用情况,对每个节点的机器上的资源及容器进行实时的监控和性能数据采集,获取应用所有副本的资源指标及使用率;基于资源指标及使用率聚合系统状态、系统资源指标和应用程序性能指标,并将聚合好的数据保存到对应的文件中;计算应用历史的负载序列数据,通过深度学习算法搭建容器资源使用量预测模型,对未来时刻的容器资源使用量进行预测;根据预测得到的负载数据计算出下一周期期望的副本数,同时采用响应式的伸缩算法计算出当前期望的副本数,两者比较后确定最终的副本数作为HPA策略的输入,进行容器资源的动态收缩。2.权利要求1所述的一种基于使用量预测的容器资源动态调度方法,其特征在于:所述性能数据包括CPU使用情况、内存使用情况、网络吞吐量以及文件系统的使用情况。3.权利要求1所述的一种基于使用量预测的容器资源动态调度方法,其特征在于:所述监控集群中的容器和每一个节点的资源使用情况,对每个节点的机器上的资源及容器进行实时的监控和性能数据采集,获取应用所有副本的资源指标及使用率具体步骤为:步骤2
‑
1:Heapster采用Kubernetes从Master节点获取系统中所有的节点信息列表;步骤2
‑
2:在每个节点中,Kubelet使用cAdvisor收集部署在该节点上的容器和整个物理节点的资源利用信息;步骤2
‑
3:获取每个节点的资源利用信息后,Heapster将这些数据存储数据库中,在InfluxDB中新建一个名为“k8s”的数据库,通过Grafana查询“k8s”数据库中的数据,并且将查询数据显示在图形界面上。4.权利要求1所述的一种基于使用量预测的容器资源动态调度方法,其特征在于:所述基于资源指标及使用率聚合系统状态、系统资源指标和应用程序性能指标,并将聚合好的数据保存到对应的文件中具体包括步骤:步骤3
‑
1:使用Kubernetes CLI kubectl在系统中获取信息,从整个系统中检索有关节点、名称空间、Pod和服务的信息;对于每个命名空间,比较每个Pod和每个服务的标签,然后记录Pod和服务的映射;步骤3
‑
2:通过InfluxDB中的HTTP接口以及InfluxDB数据库的InfluxQL语句从数据库中查询存储在数据库中的资源指标值;步骤3
‑
3:将查询的数据整理保存到JSON文件中。5.权利要求1所述的一种基于使用量预测的容器资源动态调度方法,其特征在于:所述计算应用历史的负载序列数据为:采用动态加权的来计算每一个应用的负载,综合考虑到每一种资源指标,根据每一种资源指标的使用率进行加权计算,得出应用的综合负载序列数据。6.权利要求5所述的一种基于使用量预测的容器资源动态调度方法,其特征在于:所述计算应用历史的负载序列数据具体包括步骤:假设在采集到的数据中在某一时刻一个应用有n个Pod副本,表示为P=[p1,p2,
…
,p
d
],每一个Pod副本的资源请求量为R=[r1,r2,
…
,r
d
],资源使用量为Q=[q1,q2,
…
,q
d
],另D=
[1,2,3,
…
,d]表示每一个Pod副本的资源维度;每一个应用的资源使用率表示为U=[u1,u2,
…
,u
d
],其计算公式如下:每一维资源的权重为:则综合负载为:将上式计算的某一时刻的负载加入到负载队列中,直到负载队列里面的序列个数达到预先设置的大小时,更新负载队列,将最早的那个负载值从队列里面删除,将最新计算的负载值加入到负载队列里面。7.权利要求1所述的一种基于使用量预测的容器资源动态调度方法,其特征在于:所述容器资源使用量预测模型的输入为CPU使用率、内存使用量、网络使用量和磁盘使用量,输出为容器负载,其包括编码器和解码器;所述编码器由6个同构的网络层堆叠而成,每一个网络层包含有多头注意力子层和基于位置的前馈神经网络;所述解码器...
【专利技术属性】
技术研发人员:朱大鹏,刘彩云,姜厚禄,侍守创,胡昌平,胡翔宇,徐雷,左刚,单文金,杨庆,
申请(专利权)人:中国船舶重工集团公司第七一六研究所江苏杰瑞信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。