一种基于Kubernetes的容器调度方法技术

技术编号:32459417 阅读:14 留言:0更新日期:2022-02-26 08:44
本申请涉及一种基于Kubernetes的容器调度方法,属于容器管理技术领域,其包括响应于调度器监听到容器创建请求,通过调度器获取容器申请的资源信息和Kubernetes集群中各个节点的磁盘使用信息;通过调度器基于资源信息和磁盘使用信息,从各个节点中确定创建容器的目标节点;可以解决目前的容器调度策略并没有将节点磁盘容量考虑在内,导致对于存储卷可能扩容或者需要存储拓扑分布无法提前维护的问题;通过基于节点磁盘容量进行容器调度,可以保证容器不会调度到无法创建对应volume的节点,提高容器创建的效率。通过根据配置策略将容器分散调度或者调度到刚好满足存储需求的节点,提高容器调度的灵活性。高容器调度的灵活性。高容器调度的灵活性。

【技术实现步骤摘要】
一种基于Kubernetes的容器调度方法


[0001]本申请涉及一种基于Kubernetes的容器调度方法,属于容器管理


技术介绍

[0002]Kubernetes是一个开源的容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。而Carina为在kubernetes集群中为Pod提供存储卷的项目。
[0003]Carina提供了spreadout策略及binpack策略。其中,spreadout策略会尝试把每个容器平均地部署到每个节点上,而binpack策略会把容器尽量部署在主要的负载节点上。
[0004]然而,目前的容器调度策略并没有将节点磁盘容量考虑在内,也就是说这部分内容是缺失的,用户难以预见性的得知容器会调度到哪个节点,用户对于存储卷可能扩容或者需要存储拓扑分布是无法提前维护。

技术实现思路

[0005]本申请提供了一种基于Kubernetes的容器调度方法,可以解决目前的容器调度策略并没有将节点磁盘容量考虑在内,导致对于存储卷可能扩容或者需要存储拓扑分布无法提前维护的问题。本申请提供如下技术方案:
[0006]提供一种基于Kubernetes的容器调度方法,用于Kubernetes集群中的管理节点中,所述管理节点安装有Carina;所述方法包括:
[0007]响应于调度器监听到容器创建请求,通过所述调度器获取容器申请的资源信息和所述Kubernetes集群中各个节点的磁盘使用信息;
[0008]通过所述调度器基于所述资源信息和所述磁盘使用信息,从各个节点中确定创建所述容器的目标节点。
[0009]可选地,所述通过所述调度器基于所述资源信息和所述磁盘使用信息,从各个节点中确定创建所述容器的目标节点,包括:
[0010]对于每个节点,确定所述节点的磁盘使用信息指示的可分配容量是否大于或等于所述资源信息指示的待使用容量;
[0011]在所述可分配容量是小于所述待使用容量的情况下,将所述节点筛除;
[0012]使用所述资源信息和所述磁盘使用信息,确定各个未筛除的节点的调度评分;
[0013]从各个未筛除的节点中确定调度评分符合预设条件的目标节点。
[0014]可选地,所述使用所述资源信息和所述磁盘使用信息,确定各个未筛除的节点的调度评分,包括:
[0015]对于每个未筛除的节点,计算所述未筛除的节点的可分配容量与所述待使用容量的比值;
[0016]基于所述比值确定所述未筛除的节点的调度评分。
[0017]可选地,所述基于所述比值确定所述未筛除的节点的调度评分,包括:
[0018]在所述比值大于预设阈值的情况下,确定所述未筛除的节点的调度评分为预设评
分;
[0019]在所述比值小于或等于预设阈值的情况下,确定所述未筛除的节点的调度评分为所述比值;其中,所述预设评分大于所述预设阈值。
[0020]可选地,所述从各个未筛除的节点中确定调度评分符合预设条件的目标节点,包括:
[0021]将调度评分为期望评分的未筛除的节点确定为所述目标节点。
[0022]可选地,所述从各个未筛除的节点中确定调度评分符合预设条件的目标节点,包括:
[0023]从各个未筛除的节点中确定调度评分最大的节点,得到所述目标节点。
[0024]可选地,在所述调度评分符合预设条件的未筛除的节点的数量为至少两个的情况下,所述从各个未筛除的节点中确定调度评分符合预设条件的目标节点,包括:
[0025]从至少两个符合预设条件的未筛除的节点中,随机选择一个节点确定为所述目标节点;
[0026]或者,
[0027]从至少两个符合预设条件的未筛除的节点中,确定负载信息最小的节点确定为所述目标节点。
[0028]可选地,所述基于所述资源信息和所述磁盘使用信息,从各个节点中确定创建所述容器的目标节点之后,还包括:
[0029]通过控制器在获取到所述调度器选择出的所述目标节点后,在所述目标节点创建所述容器;
[0030]创建持久卷PV;
[0031]在所述容器创建成功后,将所述PV挂载至所述目标节点。
[0032]可选地,在所述容器创建成功后,所述方法还包括:
[0033]在所述容器销毁重建的情况下,再次执行所述通过所述调度器获取容器申请的资源信息和所述Kubernetes集群中各个节点的磁盘使用信息;通过所述调度器基于所述资源信息和所述磁盘使用信息,从各个节点中确定创建所述容器的目标节点的步骤。
[0034]可选地,所述方法还包括:
[0035]在所述Kubernetes集群中创建持久化卷声明PVC,所述PVC携带有资源信息;
[0036]在所述Kubernetes集群中创建部署物Deployment;所述PVC和所述Deployment创建完成后,所述调度器监听到容器创建请求。
[0037]本申请的有益效果至少包括:通过响应于调度器监听到容器创建请求,通过调度器获取容器申请的资源信息和Kubernetes集群中各个节点的磁盘使用信息;通过调度器基于资源信息和磁盘使用信息,从各个节点中确定创建容器的目标节点;可以解决目前的容器调度策略并没有将节点磁盘容量考虑在内,导致对于存储卷可能扩容或者需要存储拓扑分布无法提前维护的问题;通过基于节点磁盘容量进行容器调度,可以保证容器不会调度到无法创建对应volume的节点,提高容器创建的效率。
[0038]另外,通过根据配置策略将容器分散调度或者调度到刚好满足存储需求的节点,可以提高容器调度的灵活性。
[0039]上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,
并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
【附图说明】
[0040]图1是本申请一个实施例提供的一种基于Kubernetes的容器调度方法的流程图;
[0041]图2是本申请一个实施例提供的一种基于Kubernetes的容器调度过程的示意图;
[0042]图3是本申请一个实施例提供的PV挂载至目标节点的整体流程图。
【具体实施方式】
[0043]下面结合附图和实施例,对本申请的具体实施方式做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
[0044]首先,对于本申请涉及的若干名词进行介绍。
[0045]Kubernetes:简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。Kubernetes是一个开源的容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Kubernetes的容器调度方法,其特征在于,用于Kubernetes集群的管理节点中,所述管理节点安装有Carina;所述方法包括:响应于调度器监听到容器创建请求,通过所述调度器获取容器申请的资源信息和所述Kubernetes集群中各个节点的磁盘使用信息;通过所述调度器基于所述资源信息和所述磁盘使用信息,从各个节点中确定创建所述容器的目标节点。2.根据权利要求1所述的方法,其特征在于,所述通过所述调度器基于所述资源信息和所述磁盘使用信息,从各个节点中确定创建所述容器的目标节点,包括:对于每个节点,确定所述节点的磁盘使用信息指示的可分配容量是否大于或等于所述资源信息指示的待使用容量;在所述可分配容量是小于所述待使用容量的情况下,将所述节点筛除;使用所述资源信息和所述磁盘使用信息,确定各个未筛除的节点的调度评分;从各个未筛除的节点中确定调度评分符合预设条件的目标节点。3.根据权利要求2所述的方法,其特征在于,所述使用所述资源信息和所述磁盘使用信息,确定各个未筛除的节点的调度评分,包括:对于每个未筛除的节点,计算所述未筛除的节点的可分配容量与所述待使用容量的比值;基于所述比值确定所述未筛除的节点的调度评分。4.根据权利要求3所述的方法,其特征在于,所述基于所述比值确定所述未筛除的节点的调度评分,包括:在所述比值大于预设阈值的情况下,确定所述未筛除的节点的调度评分为预设评分;在所述比值小于或等于预设阈值的情况下,确定所述未筛除的节点的调度评分为所述比值;其中,所述预设评分大于所述预设阈值。5.根据权利要求2所述的方法,其特征在于,所述从各个未筛除的节点中确定调度评分符合预设条件的目标节点,包括:将调度评分为期望评分的未筛...

【专利技术属性】
技术研发人员:花磊付少松崔骥张振华赵安全王亮
申请(专利权)人:苏州博纳讯动软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1