技术新讯 > 计算推算,计数设备的制造及其应用技术 > 基于主机健康度评估模型和K8s的应用调度方法与流程  >  正文

基于主机健康度评估模型和K8s的应用调度方法与流程

  • 国知局
  • 2024-10-09 15:52:52

本发明涉及一种基于k8s的应用调度方法,尤其涉及基于主机健康度评估模型和k8s的应用调度方法。

背景技术:

1、kubernetes调度是指将pod容器放置到合适的节点上,以便对应节点上的kubelet能够常见这些pod;kube-scheduler是kubernetes集群的默认调度器,是集群控制面的一部分,将选择一个最佳节点来运行新创建的且尚未被调度的pod。

2、kubernetes默认资源调度仅支持基于cpu、内存等基础资源指标进行调度,而不支持基于应用系统所关注的个性化资源指标进行调度,例如文件句柄数、磁盘io负载、网卡负载、应用程序进程状态等资源;并且应用系统关注的个性化资源指标数据通常存储于监控系统中,而监控体系与调度体系之间缺乏有效的连通,可能导致应用实例被调度到监控指标异常的服务器上运行,从而影响应用系统的稳定性,所以kubernetes默认资源调度技术体系难以满足应用系统个性化的调度需求。

技术实现思路

1、为了解决上述技术所存在的不足之处,本发明提供了基于主机健康度评估模型和k8s的应用调度方法。

2、为了解决以上技术问题,本发明采用的技术方案是:基于主机健康度评估模型和k8s的应用调度方法,包括以下步骤:

3、步骤s1:构建主机健康评估模型,定义node_healthy指标;主机健康评估模型,包括所需外部物理资源分析模块、主机与操作系统资源分析模块;主机健康评估模型的工作维度包括:服务器运行状态维度和应用可运行所需资源维度;

4、步骤s2:构建设备插件healthydeviceplugin;

5、步骤s3:基于设备插件healthydeviceplugin,将node_healthy指标注册至节点信息清单;

6、步骤s4:固定周期采集计算并获取各节点的node_healthy指标数值,并同步更新至节点信息清单;

7、步骤s5:主机健康度评估模型在应用可运行所需资源维度下,并在k8s即kubernetes技术领域内,定义node_filter_annotation指标,以明确节点是否能被调度;

8、步骤s6:主机健康度评估模型在应用可运行所需资源维度下,并在k8s即kubernetes技术领域内,定义node_score指标,以明确节点状态的优劣;

9、步骤s7:在kubernetes默认调度器的基础上,基于node_filter_annotation指标和node_score指标,构建自定义策略调度healthyscheduler,以用于过滤节点和节点状态打分;

10、步骤s8:依据节点的node_healthy指标,healthyscheduler决策出优先级最高的可被调度节点;将应用实例调度决策结果同步至优先级最高节点的kubelet组件;

11、步骤s9:根据kubelet组件监听的信息,创建应用实例。

12、进一步地,步骤s1中定义node_healthy指标,包括以下步骤:

13、s11:主机健康评估模型在服务器运行状态维度下,在k8s即kubernetes技术领域内,预设资源指标对健康度评分的影响因子及分段区间,计算资源指标对健康度的影响分值;

14、s12:基于资源指标对健康度的影响分值定义节点健康度node_healthy指标;node_healthy指标计算公式为:

15、

16、其中,node_healthy为节点健康度指标,node_healthy∈(0,100);θ为某项资源指标,θ∈{cpuidletime、freemem、load5、dcount、zombiecount、filedescriptor......};n为node_healthy指标所需考虑的对其产生影响的资源指标项总数量,n∈|{cpuidletime、freemem、load5、dcount、zombiecount、filedescriptor......}|;δhθ为θ资源指标对健康度的影响分值。

17、进一步地,s11中在kubernetes技术领域内,依据物理服务器运行监控、linux操作系统运行状态、kubernetes组件运行监控的信息进行评估,预设资源指标对健康度评分的影响因子,资源指标对健康度评分的影响因子包括cpu、内存、文件句柄数、磁盘io负载、网卡负载、应用程序进程状态。

18、进一步地,s11中计算资源指标对健康度的影响分值,公式为:

19、δhθ∈{cpuidletime、freemem、load5、dcount、zombiecount、filedescriptor......}=

20、αi(θ,β(θ))fi(θ,β(θ));

21、其中,δhθ为θ资源指标对建康度的影响分值;θ为某项资源指标,θ∈

22、{cpuidletime、freemem、load5、dcount、zombiecount、filedescriptor…};β(θ)为采集的θ资源指标数值;fi(θ,β(θ))为当θ资源指标采集到的数值为β(θ),且β(θ)分布在θ资源指标第i个分段区间时,该资源指标对健康度的影响分值,fi(θ,β(θ))∈(0,100);αi(θ,β(θ))为当θ资源指标采集到的数值为β(θ),且β(θ)分布在θ资源指标第i个分段区间时,该资源指标对健康度的影响因子。

23、进一步地,步骤s2中基于node_healthy指标中的运行与监控信息采集方法、评估模型函数、定时工具和信息同步方法构建设备插件healthydeviceplugin。

24、进一步地,步骤s4中通过创建cron定时任务,设置固定周期,按照固定周期采集和计算node_healthy指标数值;node_healthy指标数值通过healthydeviceplugin设备插件同步更新至节点信息清单。

25、进一步地,步骤s5中在kubernetes技术领域内,基于调度框架filter扩展点调度算法扩展的节点过滤规则,根据主机状态信息的node_healthy指标,定义node_filter-annotation指标;node_filter_annotation指标的计算公式为:

26、

27、其中,node_filter_annotationμ为应用μ在调度过程中的filter阶段,节点状态是否能被应用部署的状态指标;为应用μ在应用可运行的前提下对健康度资源的需求度。

28、进一步地,步骤s6中在kubernetes技术领域内,基于调度框架score扩展点调度算法扩展的节点打分规则,根据主机状态信息的node_healthy指标,定义node_score指标,以明确节点状态的优劣;filter阶段状态被标注为schedulable的节点会进入之后的score阶段;node_score指标的计算公式为:

29、

30、其中,node_scoreμ为扩展的算法在调度应用μ的过程中对节点状态优劣的打分;为当应用μ对健康度资源的需求值为且分布在应用μ的第i个分段区间时,该应用对节点状态优劣的打分;weightμ为扩展的调度算法在调度应用μ的过程中,在节点最终得分中所占的权重。

31、进一步地,步骤s8中healthyscheduler基于node_fi lter_annotation指标筛选过滤可被调度节点,并基于筛选后的节点node_score指标排序,决策出优先级最高的可被调度节点。

32、进一步地,步骤s9中kubelet组件监听到有同步到本节点待创建应用实例pod信息后,按照业务应用yaml资源清单的配置创建应用实例pod。

33、本发明公开了基于主机健康度评估模型和k8s的应用调度方法,通过建立主机健康度评估模型,实现了对主机状态信息node_healthy指标的定时采集及更新;在不侵入kubernetes源代码的前提下,基于node_healthy指标扩展了节点过滤及打分原则,有效避免了应用实例被调度到node_healthy指标状态异常节点上的情况,保障了业务应用的稳定运行。

本文地址:https://www.jishuxx.com/zhuanli/20240929/310601.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。