一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于容器管理平台的智慧校园开发方法及系统与流程

2022-03-16 04:48:32 来源:中国专利 TAG:


1.本发明涉及集群发开领域,具体涉及一种基于容器管理平台的智慧校园开发方法及系统。


背景技术:

2.在智慧校园环境下,往往为校园-团队-应用三级架构,需要具备多级管理能力,对参与数字校园建设供应商进行管理,同时供应商内部也需要对不同应用、项目进行权限划分。仅从集群或租户层面进行权限划分过于单调,针对集群内部,难以对租户内部的项目进行精细化管理
3.智慧校园建设过程时,集群并不是针对某一供应商进行独占,应该是多个产商共同使用。现有集群一对一授权模式无法做到团队之间资源共享,可能会造成资源的浪费;另一层面,集群之间需要采用集群联邦方式进行通讯,按照集群模式进行资源划分也会加大部署架构的复杂度和性能;资源限额层面不够,目前只能通过集群维度进行资源限额,无法在同个集群内部实现应用的资源使用限额,达到共同使用且互不干扰效果。


技术实现要素:

4.为了解决智慧校园开发过程中的资源利用问题,本发明提供一种基于容器管理平台的智慧校园开发方法,所述方法包括:注册步骤,接收团队发送的注册请求,所述注册请求包含团队信息和项目信息;比对所述项目信息和预设的项目信息表,当所述项目信息比对通过后,创建用户账号并存储,所述用户账号包含项目信息;
5.登录步骤:响应于所述团队的登录请求,为所述用户账号创建服务账号并绑定对应的开发空间,所述服务账号和所述开发空间与所述项目信息相关联;并且为所述服务账号添加认证信息,根据所述认证信息来认证所述团队是否登录成功;
6.授权及准入控制步骤:基于不同的所述项目信息预设项目权限表;在确定所述团队登录成功后,为所述开发空间创建访问权限,所述访问权限根据所述项目信息从所述项目权限表中获得,并将所述开发空间和所述访问权限进行关联;
7.监控步骤:监控所有所述开发空间的资源使用信息作为监控信息并存储,根据所述监控信息为所述开发空间分配工作节点。
8.进一步而言,所述监控步骤:所述监控信息包括所述开发空间在所述监测时段内的需求资源信息和限额资源信息,根据最新的所述监控信息为每个所述开发空间设置资源规格;所述设置资源规格:在创建所述开发空间时,根据所述项目信息和平均所述需求资源信息设置所述开发空间的资源需求期望信息,根据平均所述限额资源信息设置所述开发空间的资源限额期望信息。
9.进一步而言,所述监控步骤:所述容器管理平台的资源调度器根据各个开发空间的初始资源配额来分配工作节点,所述初始资源配额可以包括初始需求资源信息和初始限额资源信息。
10.进一步而言,所述监控步骤:所述监控信息还包括所述开发空间在所述监测时段内的容器数量信息,根据所述开发空间的所述资源规格和所述容器数量信息,限定该开发空间中的各个容器的所述资源范围。
11.进一步而言,所述监控步骤还包括:预设优先级列表,所述优先级列表包含不同优先级的资源配额信息;所述团队根据所述容器的实际资源需求程度,设定不同的优先级获取对应的资源配额。
12.另一方面,本发明还提供一种基于容器管理平台的智慧校园开发系统,该系统包括:注册模块,接收团队发送的注册请求,所述注册请求包含团队信息和项目信息;比对所述项目信息和预设的项目信息表,当所述项目信息比对通过后,创建用户账号并存储,所述用户账号包含项目信息;
13.登录模块:响应于所述团队的登录请求,为所述用户账号创建服务账号并绑定对应的开发空间,所述服务账号和所述开发空间与所述项目信息相关联;并且为所述服务账号添加认证信息,根据所述认证信息来认证所述团队是否登录成功;
14.授权及准入控制模块:基于不同的所述项目信息预设项目权限表;在确定所述团队登录成功后,为所述开发空间创建访问权限,所述访问权限根据所述项目信息从所述项目权限表中获得,并将所述开发空间和所述访问权限进行关联;
15.监控模块:监控所有所述开发空间的资源使用信息作为监控信息并存储,根据所述监控信息为所述开发空间分配工作节点。
16.进一步而言,所述监控模块:所述监控信息包括所述开发空间在所述监测时段内的需求资源信息和限额资源信息,根据最新的所述监控信息为每个所述开发空间设置资源规格;所述设置资源规格:在创建所述开发空间时,根据所述项目信息和平均所述需求资源信息设置所述开发空间的资源需求期望信息,根据平均所述限额资源信息设置所述开发空间的资源限额期望信息。
17.进一步而言,所述监控模块:所述容器管理平台的资源调度器根据各个开发空间的初始资源配额来分配工作节点,所述初始资源配额可以包括初始需求资源信息和初始限额资源信息。
18.进一步而言,所述监控模块:所述监控信息还包括所述开发空间在所述监测时段内的容器数量信息,根据所述开发空间的所述资源规格和所述容器数量信息,限定该开发空间中的各个容器的所述资源范围。
19.进一步而言,所述监控模块还包括:所述容器管理平台预设有优先级列表,所述优先级列表包含不同优先级的资源配额信息;所述团队根据所述容器的实际资源需求程度,设定不同的优先级获取对应的资源配额。
20.本发明提供的基于容器管理平台的智慧校园开发方法及系统,设置了监控步骤,监控各开发空间在实时开发过程中的资源需求配额情况、资源限额情况等,从而可以根据监控信息实现开发空间在创建时就分配更合理的资源参数,还可以更加科学地为各容器调用资源,提高资源利用率。
附图说明
21.图1为智慧校园开发方法实施例在开发过程中的关系示意图。
22.图2为智慧校园开发方法实施例的流程示意图。
具体实施方式
23.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.智慧校园建设过程中,会涉及多个团队多个项目同时开发的情况。如图1所示,团队和项目之间为多对多的关系,项目和权限之间为一对一的关系。这里的权限包括对应数据或者数据库的操作权限,例如查询、修改、删除、查看等。
25.就一个项目而言,该项目所要涉及的数据是相对确定的。例如统一身份认证项目,需要对于该项目开放全校学生、教师等所有需要进出学校等人员的信息数据的相应权限,如果采用人脸识别认证则还需要采集这些人员的人脸信息,该项目的开发过程中需要有这些数据的操作权限,而不管这个项目的具体开发团队构成以及变化情况。
26.一个基于容器管理平台的智慧校园开发方法实施例中,参考图1所示,容器管理平台为kubernetes平台,管理方法包括注册步骤s01、登录步骤s02、授权及准入控制步骤s03和监控步骤s04,团队是指智慧校园的开发团队。
27.其中,注册步骤中,容器管理平台接收团队发送的注册请求,注册请求包含团队信息和项目信息,团队信息为用户名和密码。项目信息为该团队负责项目信息,项目信息可以为项目名称或者项目编号等识别信息。
28.apiserver接收到注册请求后,首先根据项目信息和数据库中已存项目信息进行比对,可以预设一个项目信息表,项目信息表由管理员通过后台建立并维护并不对开发团队开放,该数据库可以为etcd或者其他数据库。判断团队提交的项目信息是否正确且和数据库中的项目信息相匹配。如果项目信息比对失败,可能项目信息输入有误或者还未在数据库中建立该项目信息,则返回一个提示信息,便于团队更正或者联系管理员。
29.如果项目信息比对通过,容器管理平台创建用户账号并存储,用户账号包含项目信息,可以建立用户账号信息表用于存储用户账号,用户账号至少关联一个项目信息。如图2所示,智慧校园建设过程中,会涉及多个团队,每个团队可能会涉及多个项目,同时每个项目可能会有多个团队共同完成;当是,对于确定的项目而言,每个项目开发过程中需要的资源大致是确定的,比如cpu、内存、存储以及数据资源等,由此可以确定每个项目的权限。即使资源需求有所变化,还可以由管理员通过后台修改权限,而并不必对团队开放。
30.开发团队利用用户账号登录kubernetes平台,如果用户账号正确则实例化该用户账号,为其创建服务账号和对应的名字空间即namespace,该开发团队在该名字空间内进行智慧校园的项目开发工作,这里的名字空间就是该团队的开发空间。不同的项目在不同的名字空间内进行开发,项目相互隔离,保证同步开发无不干扰。当一个团队开发多个项目时,即一个用户账号关联多个项目信息时,需要开发团对在登录时选择本次登录的项目信息。另一种实施例中,所有团队在登录时,都需要提供用户账号和项目信息。
31.服务账号名称、名字空间名称以及项目信息的名称为同一个名称,即为项目信息表中的一个值。另外,对于服务账号添加认证信息如token令牌,便于开发团队的多次登录,
提高开发效率。如果并未成功添加认证信息,表明该服务账号并未建设成功,提醒团队再次登录。
32.然后,kubernetes平台会基于预设项目权限表,对上述的名字空间进行授权及准入控制。本实施例中,采用rbac(role-based access control)鉴权策略完成授权及准入控制,其中的role为项目信息即以项目信息为角色。每个角色的项目权限都已经存储在预设的项目权限表中,在确定团队登录成功之后,根据登录请求信息中的项目信息从项目权限表中获取访问权限,并创建名字空间作用域。在名字空间作用域中指定该名字空间,并且将获取的访问权限作用该名字空间作用域的限定规则,再将名字空间作用域和该名字空间进行绑定关联。
33.对于关联有多个开发开发团队的项目,在授权及准入控制步骤中,还需要将名字空间作用域和其中一个用户账号进行绑定。在开发过程中,如果另一个共同开发团队也同时登录,则给出提示消息表明该项目正在被其他团队开发,拒绝其登录或者直接登录失败,防止冲突发生。如果项目和团队之间的关系有所变化,则需要管理员在后台进行关联调整。
34.在各个项目的开发过程中,对于开发情况的资源使用情况进行监控。一种实施例中,监控所有开发空间的资源使用信息作为监控信息并存储,将监控信息反馈至kubernetes平台的主节点并将其存储在etcd库中。监控信息为各个开发空间的资源使用信息,可以使用项目信息调取到对应的资源使用信息。
35.一种实施例中,监控信息为空表,各个开发空间在创建时由kubernetes平台的资源调度器给与默认配额。另一种实施例中,监控信息保存有监控数据,kubernetes平台根据监控信息为各个开发空间分配对应的工作节点。该方案,容器管理平台可以根据各个项目的资源使用情况即实际状态(status),并结合各个工作节点的资源信息,更加科学的分配或者调度适合的工作节点,提高资源利用率。
36.具体而言,一种实施例中,监控信息包括开发空间在监测时段内的需求资源信息和限额资源信息,这里的容器管理平台为kubernetes平台,开发空间为名字空间,需求资源信息为名字空间的需求总量值,限额资源信息为名字空间的限额总量值。可以设置一个固定时间作为监测时段,更新监控信息;也可以当开发空间被删除后,更新该监控信息,此时整个开发空间从创建到被删除都是监测时段。这里的资源可以为cpu、内存、存储卷等。监控信息可以以键值对方式存储在平台中,其中的键包括项目信息。
37.再根据最新的监控信息为每个开发空间设置资源规格,包括重建、新建等情况下构建新的开发空间时,根据登录请求中的项目信息为其设置资源规格即设置spec的值。一种实施例中,如图2所示,容器管理平台为kubernetes平台,在创建开发空间时,根据项目信息和平均需求资源信息设置开发空间的资源需求期望信息即requests值,根据平均限额资源信息设置开发空间的资源限额期望信息即limits值。该方案,在各个项目的开发空间创建时就设置了较合理的资源规格,容器管理平台的资源调度器可以结合各个开发空间的资源规格和物理机的资源情况,更加合理的调度资源为各个开发空间分配合适的工作节点。
38.其中,平均需求资源信息和平均限额资源信息可以根据监测时段内的需求资源信息和限额资源信息计算得到,也可以在该计算结果上做个偏差值后作为上述平均值,还可以计算资源信息的加权平均值。另外一方面而言,可以调整监控资源信息的监控频率,还可以排除长期无资源使用的时间段后再计算平均值。
39.更具体而言,在监控步骤中,容器管理平台的资源调度器根据各个开发空间的初始资源配额来分配工作节点,初始资源配额为cpu、内存、存储卷等的初始配额。初始资源配额可以包括初始需求资源信息和初始限额资源信息,资源调取器根据这些信息调度都满足要求的工作节点。
40.另一种实施例中,在监控步骤中,监控信息还包括开发空间在监测时段内的容器数量信息,根据开发空间的资源规格和容器数量信息,限定该开发空间中的各个容器的资源范围。该方案,在限定了开发空间的资源配额信息以及允许生成容器的数量,从而可以计算得到平摊到各个容器的最小资源配额信息,以及在除去预留资源之外后开发空间内只有一个容器时为该容器的最大资源配额,便于对容器级别的资源调度。具体而言,容器管理平台为kuberneters平台,计算得到各个容器的资源配额之后,利用limitrange控制器设定该namespace名字空间中各个容器的资源配额,比如设定容器的cpu或者内存的最大值和最小值,用以控制各个容器资源使用范围,排除不符合资源配额的容器。
41.更进一步而言,更优实施例中,在监控步骤中,可以实现预设优先级列表,在优先级列表中包含不同优先级的资源配额信息,优先级列表可以由管理员在后台预先设定,并不对开发团队开放。具体而言,利用kuberneters平台中资源定额(resourcequota)和优先级作用域(priorityclass),可以先预设包含高、中、低的三种优先级级别的列表,可以将其以yml文件保存在数据库中;针对不同优先级级别设定固定资源配额即资源配额信息,比如cpu、内存的资源配额值,也可以设定名字空间的容器数量值。
42.基数以上优先级的设定,团队在开发过程中可以根据容器的实际资源需求程度,比如需要在某个容器中运行的进程较占资源则可以设定为高优先级。在设定不同的优先级之后,就会调用优先级列表中对应优先级级别的资源配额信息,如果容器的资源配额该优先级级别的资源配额,则该容器会被创建。该方案,可以杜绝实际资源需求较小的容器占用额外的资源,并且开发团队可以根据实际资源需求调用对应符合的优先级,从而提高资源利用率。
43.另一方面,本发明的一种实施例为基于容器管理平台的智慧校园开发系统,该系统包括注册模块、登录模块、授权及准入控制模块以及监控模块。
44.其中,注册模块用于,接收团队发送的注册请求,所述注册请求包含团队信息和项目信息;比对所述项目信息和预设的项目信息表,当所述项目信息比对通过后,创建用户账号并存储,所述用户账号包含项目信息。
45.其中,登录模块用于,响应于所述团队的登录请求,为所述用户账号创建服务账号并绑定对应的开发空间,所述服务账号和所述开发空间与所述项目信息相关联;并且为所述服务账号添加认证信息,根据所述认证信息来认证所述团队是否登录成功。
46.其中,授权及准入控制模块用于,基于不同的所述项目信息预设项目权限表;在确定所述团队登录成功后,为所述开发空间创建访问权限,所述访问权限根据所述项目信息从所述项目权限表中获得,并将所述开发空间和所述访问权限进行关联。
47.其中,监控模块用于,监控所有所述开发空间的资源使用信息作为监控信息并存储,根据所述监控信息为所述开发空间分配工作节点。
48.该系统各模块的其他实施例可以参考前述的方法实施例,注册模块对应于注册步骤,登录模块对应于登录步骤,授权及准入控制模块对应于授权及准入控制步骤,以及监控
模块对应于监控步骤,此处不再赘述。
49.以上所举实施例为本技术的较佳实施方式,仅用来方便说明本技术,并非对本技术作任何形式上的限额,任何所属技术领域中具有通常知识者,若在不脱离本技术所提技术特征的范围内,利用本技术所揭示技术内容所作出局部更动或修饰的等效实施例,并且未脱离本技术的技术特征内容,均仍属于本技术技术特征的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献