基于容器化技术的云平台多租户资源分配方法及相关装置与流程

未命名 08-15 阅读:96 评论:0


1.本发明涉及云计算技术领域,尤其涉及一种基于容器化技术的云平台多租户资源分配方法及相关装置。


背景技术:

2.随着云计算的普及,多租户资源分配已成为企业和开发者的首选。然而,传统的多租户资源分配方法存在资源利用率低、安全性不足、扩展性差等问题。因此,有必要提出一种新的多租户资源分配方法,以解决这些问题。


技术实现要素:

3.本发明的目的在于克服现有技术的不足,本发明提供了一种基于容器化技术的云平台多租户资源分配方法及相关装置,实现对每一个租户进行资源分配,保证每一个租户的运行,同时实现对每一个租户进行数据隔离,保证数据安全。
4.为了解决上述技术问题,本发明提供了一种基于容器化技术的云平台租户资源分配方法,所述方法包括:云平台接收若干个租户的资源分配请求,所述资源分配请求中包含租户id、租户权限信息和租户资源需求信息;在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间;基于所述若干个租户中每一个租户的租户权限信息在每一个租户的命名空间内进行资源上限分配处理,获得若干个租户在每一个租户的命名空间内的分配资源上限数据信息;基于所述若干个租户中每一个租户的租户资源需求信息按照每一个租户的命名空间内的分配资源上限数据信息进行资源分配处理,获得若干个租户在每一个租户的命名空间中的分配资源数据;所述若干个租户在每一个租户的命名空间中按照分配资源数据运行时,基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。
5.可选的,所述云平台接收若干个租户的资源分配请求,包括:所述云平台接收若干个租户中每一个租户发送的身份认证信息,所述身份认证信息包括租户的用户名及对应密码、租户的api密钥或第三方身份提供商提供的验证信息;所述云平台基于所述身份认证信息进行身份认证处理,并在身份认证通过后,向若干个租户中的每一个租户下发与所述身份认证信息对应的租户权限信息;所述云平台接收所述若干个租户中的每一个租户基于相对应的租户权限信息编辑生成资源分配请求;所述租户资源需求信息包括租户计算资源需求信息、租户存储资源需求信息及租
户网络资源需求信息。
6.可选的,所述在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间,包括:在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户按照每一个租户的租户id进行命名空间创建处理,获得每一个租户的命名空间;所述命名空间为逻辑隔离机制空间,用于将所述若干个租户中的各个租户之间的租户数据进行隔离。
7.可选的,所述基于所述若干个租户中每一个租户的租户权限信息在每一租户的命名空间内进行资源上限分配处理,包括:利用所述若干个租户中每一个租户的租户权限信息在所述云平台中匹配出若干个租户中每一个租户的租户权限信息的资源使用上限数据信息;基于若干个租户中每一个租户的租户权限信息的资源使用上限数据信息在每一个租户的命名空间内进行资源上限分配处理。
8.可选的,所述基于所述若干个租户中每一个租户的租户资源需求信息按照每一租户的命名空间内的分配资源上限数据信息进行资源分配处理,包括:判断所述若干个租户中每一个租户的租户资源需求信息是否大于分配资源上限数据信息;若大于或等于分配资源上限数据信息时,则在所述若干个租户中每一个租户的命名空间内按照每一个租户的分配资源上限数据信息进行资源分配处理;若小于分配资源上限数据信息时,则在所述若干个租户中每一个租户的命名空间内按照每一个租户的租户资源需求信息中的实际资源需求信息进行资源分配处理。
9.可选的,所述基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理,包括:对所述每一个租户运行的应用程序的创建及更新进行实时监测,在监测到创建新的应用程序或更新运行的应用程序后,获得创建新的应用程序或更新运行的应用程序所需的实时资源需求数据;或,对接收每一个租户的实时资源分配请求获得实时资源需求数据;基于每一个租户的历史资源使用数据及实时资源需求数据利用线性拟合的方式进行预设时间段内的资源需求数据预测处理,获得预测资源需求数据;所述容器编排引擎在每一个租户的命名空间内根据所述实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。
10.可选的,所述利用动态资源调度算法进行分配资源数据的动态调度处理,包括:基于计算资源均衡分配设计和网络资源利用率的方式进行分配资源数据的动态调度处理;所述计算资源均衡分配设计基于计算cpu与内存之间的利用率差值计算获得,其中所述利用率差值越小,则计算资源均衡越高。
11.另外,本发明还提供了一种基于容器化技术的云平台租户资源分配装置,所述装置包括:接收模块:用于云平台接收若干个租户的资源分配请求,所述资源分配请求中包
含租户id、租户权限信息和租户资源需求信息;空间创建模块:用于在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间;第一分配模块:用于基于所述若干个租户中每一个租户的租户权限信息在每一个租户的命名空间内进行资源上限分配处理,获得若干个租户在每一个租户的命名空间内的分配资源上限数据信息;第二分配模块:用于基于所述若干个租户中每一个租户的租户资源需求信息按照每一个租户的命名空间内的分配资源上限数据信息进行资源分配处理,获得若干个租户在每一个租户的命名空间中的分配资源数据;动态调度模块:用于所述若干个租户在每一个租户的命名空间中按照分配资源数据运行时,基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。
12.另外,本发明还提供了一种云平台,包括处理器和存储器,所述处理器运行存储于所述存储器中的计算机程序或代码,实现如上述中任一项所述的云平台租户资源分配方法。
13.另外,本发明还提供了一种计算机可读存储介质,用于存储计算机程序或代码,当所述计算机程序或代码被处理器执行时,实现如权上述中任一项所述的云平台租户资源分配方法。
14.在本发明实施例中,通过在容器编排引擎中为每一个租户创建一个命名空间,实现若干个租户中每一个租户之间的数据隔离,保证各个租户之间的数据安全;同时设置每一个租户的资源使用上限,这样可以有效的防止某一个租户占用过多的资源,采用动态资源调整,可以实现根据租户的实际情况进行资源重新调整,保证资源分配的灵活性。
附图说明
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
16.图1是本发明实施例中的基于容器化技术的云平台租户资源分配方法的流程示意图;图2是本发明实施例中的基于容器化技术的云平台租户资源分配装置的结构组成示意图;图3是本发明实施例中的云平台的结构组成示意图。
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
18.实施例一,请参阅图1,图1是本发明实施例中的基于容器化技术的云平台租户资源分配方法的流程示意图。
19.如图1所示,一种基于容器化技术的云平台租户资源分配方法,所述方法包括:s11:云平台接收若干个租户的资源分配请求,所述资源分配请求中包含租户id、租户权限信息和租户资源需求信息;在本发明具体实施过程中,所述云平台接收若干个租户的资源分配请求,包括:所述云平台接收若干个租户中每一个租户发送的身份认证信息,所述身份认证信息包括租户的用户名及对应密码、租户的api密钥或第三方身份提供商提供的验证信息;所述云平台基于所述身份认证信息进行身份认证处理,并在身份认证通过后,向若干个租户中的每一个租户下发与所述身份认证信息对应的租户权限信息;所述云平台接收所述若干个租户中的每一个租户基于相对应的租户权限信息编辑生成资源分配请求;所述租户资源需求信息包括租户计算资源需求信息、租户存储资源需求信息及租户网络资源需求信息。
20.具体的,在云平台上具有租户管理中心,通过租户管理中心实现租户的注册、认证及授权等管理,在该租户不在云平台上存在相关信息之后,可以接收该租户在云平台上进行注册,并为该租户在云平台中分配具有唯一性的租户id;后续在租户通过认证登录该云平台之后,可以通过该租户id为其分配对应的角色及权限,从而实现控制该租户对云平台的资源访问、使用及操作;对于租户的资源分配,具体可以根据租户对资源的需求以及租户的权限等来进行资源分配,同时具有监控租户资源使用情况,比如租户对cpu的使用情况、内存的使用情况、磁盘使用情况以及网络带宽使用情况等。
21.在若干个租户已在云平台注册了,则云平台可以接受若干个租户中的每一个租户发送过来的身份认证信息,其中该身份认证信息具体可以包括有租户的用户名及对应密码、租户的api密钥或第三方身份提供商提供的验证信息;云平台中的租户管理中心利用该身份认证信息进行身份认证处理,并在身份认证通过后,向若干个租户中的每一个租户下发与所述身份认证信息对应的租户权限信息;然后该云平台即可接收若干个租户中的每一个租户根据该相对应的租户权限信息编辑生成资源分配请求;资源分配请求中包含租户id、租户权限信息和租户资源需求信息;租户资源需求信息包括租户计算资源需求信息、租户存储资源需求信息及租户网络资源需求信息。
22.s12:在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间;在本发明具体实施过程中,所述在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间,包括:在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户按照每一个租户的租户id进行命名空间创建处理,获得每一个租户的命名空间;所述命名空间为逻辑隔离机制空间,用于将所述若干个租户中的各个租户之间的租户数据进行隔离。
23.具体的,云平台中具有容器编排引擎,在云平台接收到资源分配请求之后,判断该资源分配请求对应的租户是否在容器编排引擎内创建有命名空间,若是没有,则需要在容器编排引擎中对若干个租户中的每一个租户按照其对应的租户id来进行命名空间创建处理,即可得到每一个租户的命名空间;其中命名空间是命名空间为逻辑隔离机制空间,用于将若干个租户中的各个租户之间的租户数据进行隔离。
24.s13:基于所述若干个租户中每一个租户的租户权限信息在每一个租户的命名空间内进行资源上限分配处理,获得若干个租户在每一个租户的命名空间内的分配资源上限数据信息;在本发明具体实施过程中,所述基于所述若干个租户中每一个租户的租户权限信息在每一租户的命名空间内进行资源上限分配处理,包括:利用所述若干个租户中每一个租户的租户权限信息在所述云平台中匹配出若干个租户中每一个租户的租户权限信息的资源使用上限数据信息;基于若干个租户中每一个租户的租户权限信息的资源使用上限数据信息在每一个租户的命名空间内进行资源上限分配处理。
25.具体的,利用若干个租户中每一个租户的租户权限信息在云平台中匹配出若干个租户中每一个租户的租户权限信息的资源使用上限数据信息;然后根据若干个租户中每一个租户的租户权限信息的资源使用上限数据信息在每一个租户的命名空间内进行资源上限分配处理。通过这样为每一个租户进行资源配额,限制每一个租户在每一个租户的命名空间内可以使用的资源总量,如cpu、内存、存储、网络等资源;这样可以有效的防止某一个租户占用较多的资源,导致其他租户可分配的资源变少,从而影响其他租户的正常使用。
26.通过limitrange 对象为每个命名空间设置资源使用额度,即资源使用上限数据信息,在后续资源使用上限数据信息不够用时,租户可以通过申请的方式调整资源使用上限数据信息;这样子可以确保租户之间的资源使用更加公平。
27.s14:基于所述若干个租户中每一个租户的租户资源需求信息按照每一个租户的命名空间内的分配资源上限数据信息进行资源分配处理,获得若干个租户在每一个租户的命名空间中的分配资源数据;在本发明具体实施过程中,所述基于所述若干个租户中每一个租户的租户资源需求信息按照每一租户的命名空间内的分配资源上限数据信息进行资源分配处理,包括:判断所述若干个租户中每一个租户的租户资源需求信息是否大于分配资源上限数据信息;若大于或等于分配资源上限数据信息时,则在所述若干个租户中每一个租户的命名空间内按照每一个租户的分配资源上限数据信息进行资源分配处理;若小于分配资源上限数据信息时,则在所述若干个租户中每一个租户的命名空间内按照每一个租户的租户资源需求信息中的实际资源需求信息进行资源分配处理。
28.具体的,首先是需要判断若干个租户中每一个租户的租户资源需求信息是否大于分配资源上限数据信息;若大于或等于分配资源上限数据信息时,则在若干个租户中每一个租户的命名空间内按照每一个租户的分配资源上限数据信息进行资源分配处理,同时需要向云平台申请调整分配资源上限数据信息;若小于分配资源上限数据信息时,则在若干个租户中每一个租户的命名空间内按照每一个租户的租户资源需求信息中的实际资源需求信息进行资源分配处理;这样可以保证租户所分配的资源得到合理的使用,提高资源的使用效率,减少资源浪费;对于当中的网络资源使用网络策略实现租户之间的网络隔离,为若干个租户中的每一个租户分配独立的网络子网,限制不同租户之间的网络访问,保证租户的网络使用安全;对于每一个租户的磁盘存储资源,则需要进行存储隔离,具体为每一个租户在磁盘中分配独立的存储卷,实现存储资源的隔离;同时,可以使用 storageclass 对象为不同租户提供不同级别的存储服务。
29.s15:所述若干个租户在每一个租户的命名空间中按照分配资源数据运行时,基于
每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。
30.在本发明具体实施过程中,所述基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理,包括:对所述每一个租户运行的应用程序的创建及更新进行实时监测,在监测到创建新的应用程序或更新运行的应用程序后,获得创建新的应用程序或更新运行的应用程序所需的实时资源需求数据;或,对接收每一个租户的实时资源分配请求获得实时资源需求数据;基于每一个租户的历史资源使用数据及实时资源需求数据利用线性拟合的方式进行预设时间段内的资源需求数据预测处理,获得预测资源需求数据;所述容器编排引擎在每一个租户的命名空间内根据所述实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。
31.进一步的,所述利用动态资源调度算法进行分配资源数据的动态调度处理,包括:基于计算资源均衡分配设计和网络资源利用率的方式进行分配资源数据的动态调度处理;所述计算资源均衡分配设计基于计算cpu与内存之间的利用率差值计算获得,其中所述利用率差值越小,则计算资源均衡越高。
32.具体的,需要对每一个租户运行的应用程序的创建及更新进行实时监测,在监测到创建新的应用程序或更新运行的应用程序后,获得创建新的应用程序或更新运行的应用程序所需的实时资源需求数据;或,对接收每一个租户的实时资源分配请求获得实时资源需求数据;并且根据每一个租户的历史资源使用数据及实时资源需求数据利用线性拟合的方式进行预设时间段内的资源需求数据预测处理,即可得到预测资源需求数据;具体利用每一个租户的历史资源使用数据拟合出一个该租户在某一时间段内的拟合曲线,比如以一天时间为时间段,利用历史资源使用数据来进行一天时间段内的资源使用数据曲线拟合,即可得到拟合曲线,得到需要预测的预设时间段内在一天时间段内的具体时间段,然后得到对应的拟合曲线段,判断当前的实时资源需求数与对应的拟合曲线段的拟合值的差值,然后利用该预测数据在该差值进行相加及相减处理,形成一个预测范围值,将该预测范围值作为预测资源需求数据;然后该容器编排引擎在每一个租户对应的命名空间内根据实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理;即根据实时资源需求数据包括cpu资源需求数据、内存资源需求数据及网络资源需求和预测资源需求数据包括预测cpu资源需求数据、预测内存资源需求数据及预测网络资源需求利用动态资源调度算法进行分配资源数据的动态调度处理;具体为首先是判断实时资源需求数据和预测资源需求数据是否大于分配资源上限数据信息,在不大于分配资源上限数据信息时,按照时资源需求数据和预测资源需求数据的具体的资源需求数据进行资源动态调度处理,在资源动态调度时,cpu资源和内存资源使用率的分数需要大于等于预设分数,cpu资源和内存资源使用率的分数计算过程如下:score = 1
ꢀ‑ꢀ
|(cpu 使用率
ꢀ‑ꢀ
内存使用率)|,同时,网络资源的动态调度分配,需要保证网络资源利用率要大于等于90%;在实时资源需求数据大于分配资源上限数据信息时,需要判断预测资源需求数据是否大于分配资源上限数据信息,若大于时,则需要按照预测资源需求数据调整分配资源上限数据信息,然后按照调整后的分配资源上限数据信息,并按照调整后的分配资源上限数据信息进行资源需求数据的动态调度调整;在预测资源需求数据小于或等于分配资源上限数据信息时,
则无需对分配资源上限数据信息,并按照分配资源上限数据信息进行资源动态调度调整,同时,动态调度调整需要满足cpu资源和内存资源使用率的分数需要大于等于预设分数,cpu资源和内存资源使用率的分数计算过程如下:score = 1
ꢀ‑ꢀ
|(cpu 使用率
ꢀ‑ꢀ
内存使用率)|,同时,网络资源的动态调度分配,需要保证网络资源利用率要大于等于90%。
33.在本步骤中,在命名空间内根据实时资源需求数据和预测资源需求数据来使用动态资源调度算法进行分配资源数据的动态调度,可以实现根据每一个租户的在当前的实时资源需求数据和未来的预测资源需求数据,使得每一个租户所需要的资源得到重新调整,并且所分配的cpu资源和存储资源之间更为均衡,所分配的网络资源也可以得到更好的利用,从而确保资源分配的合理性,提高云平台的负载均衡度。
34.在利用动态资源调度算法进行分配资源数据的动态调度时,使用了新的资源利用率计算方式,并加入了网络利用率这一新的指标;算法采用资源均衡分配设计思想,计算 cpu 和内存利用率之间的差值。差值越小,说明 cpu 和内存使用越均衡,从而得分越高。其计算公式为:score = 1
ꢀ‑ꢀ
|(cpu 使用率
ꢀ‑ꢀ
内存使用率)|;及计算资源均衡分配设计是根据计算cpu与内存之间的利用率差值计算获得,其中利用率差越小,则计算资源均衡越高;在优选过程中,算法还考虑了网络利用率这一新的指标。网络利用率可以帮助确保集群中的网络资源得到合理分配,从而提高整个集群的负载均衡效率。
35.通过该资源调度算法,容器编排引擎可以根据租户的需求和系统资源状况,动态分配计算资源、存储资源和网络资源;这样即可以实现更高的资源利用率、更好的安全性和更强的扩展性。
36.云平台中存在安全中心,主要用于若干个租户中每一个租户之间的安全隔离,包括网络隔离、存储隔离和计算资源隔离;其中网络安全隔离主要通过虚拟网络、子网和安全组等技术实现多租户之间的网络隔离,以防止网络攻击和数据泄露;存储隔离主要通过加密、访问控制和备份等技术实现多租户之间的存储隔离,以保证数据安全;计算资源隔离主要通过资源限制、资源预留和资源隔离等技术实现多租户之间的计算资源隔离,以防止资源争抢和性能干扰。
37.云平台中还包括监控与警告中心,主要用于对云平台运行的状态进行监控,发现异常时及时报警;监控指标主要是收集和存储系统的各种监控指标,如cpu使用率、内存使用率、磁盘使用率、网络流量、服务响应时间等;报警规则主要是根据预定义的报警规则,检测监控指标的异常情况,如资源使用超过阈值、服务响应时间过长等;报警通知主要是在发现异常时,通过邮件、短信或其他通知方式,及时通知运维人员进行处理。
38.在本发明实施例中,通过在容器编排引擎中为每一个租户创建一个命名空间,实现若干个租户中每一个租户之间的数据隔离,保证各个租户之间的数据安全;同时设置每一个租户的资源使用上限,这样可以有效的防止某一个租户占用过多的资源,采用动态资源调整,可以实现根据租户的实际情况进行资源重新调整,保证资源分配的灵活性。
39.实施例二,请参阅图2,图2是本发明实施例中的基于容器化技术的云平台租户资源分配装置的结构组成示意图。
40.如图2所示,一种基于容器化技术的云平台租户资源分配装置,所述装置包括:接收模块21:用于云平台接收若干个租户的资源分配请求,所述资源分配请求中包含租户id、租户权限信息和租户资源需求信息;
在本发明具体实施过程中,所述云平台接收若干个租户的资源分配请求,包括:所述云平台接收若干个租户中每一个租户发送的身份认证信息,所述身份认证信息包括租户的用户名及对应密码、租户的api密钥或第三方身份提供商提供的验证信息;所述云平台基于所述身份认证信息进行身份认证处理,并在身份认证通过后,向若干个租户中的每一个租户下发与所述身份认证信息对应的租户权限信息;所述云平台接收所述若干个租户中的每一个租户基于相对应的租户权限信息编辑生成资源分配请求;所述租户资源需求信息包括租户计算资源需求信息、租户存储资源需求信息及租户网络资源需求信息。
41.具体的,在云平台上具有租户管理中心,通过租户管理中心实现租户的注册、认证及授权等管理,在该租户不在云平台上存在相关信息之后,可以接收该租户在云平台上进行注册,并为该租户在云平台中分配具有唯一性的租户id;后续在租户通过认证登录该云平台之后,可以通过该租户id为其分配对应的角色及权限,从而实现控制该租户对云平台的资源访问、使用及操作;对于租户的资源分配,具体可以根据租户对资源的需求以及租户的权限等来进行资源分配,同时具有监控租户资源使用情况,比如租户对cpu的使用情况、内存的使用情况、磁盘使用情况以及网络带宽使用情况等。
42.在若干个租户已在云平台注册了,则云平台可以接受若干个租户中的每一个租户发送过来的身份认证信息,其中该身份认证信息具体可以包括有租户的用户名及对应密码、租户的api密钥或第三方身份提供商提供的验证信息;云平台中的租户管理中心利用该身份认证信息进行身份认证处理,并在身份认证通过后,向若干个租户中的每一个租户下发与所述身份认证信息对应的租户权限信息;然后该云平台即可接收若干个租户中的每一个租户根据该相对应的租户权限信息编辑生成资源分配请求;资源分配请求中包含租户id、租户权限信息和租户资源需求信息;租户资源需求信息包括租户计算资源需求信息、租户存储资源需求信息及租户网络资源需求信息。
43.空间创建模块22:用于在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间;在本发明具体实施过程中,所述在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间,包括:在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户按照每一个租户的租户id进行命名空间创建处理,获得每一个租户的命名空间;所述命名空间为逻辑隔离机制空间,用于将所述若干个租户中的各个租户之间的租户数据进行隔离。
44.具体的,云平台中具有容器编排引擎,在云平台接收到资源分配请求之后,判断该资源分配请求对应的租户是否在容器编排引擎内创建有命名空间,若是没有,则需要在容器编排引擎中对若干个租户中的每一个租户按照其对应的租户id来进行命名空间创建处理,即可得到每一个租户的命名空间;其中命名空间是命名空间为逻辑隔离机制空间,用于将若干个租户中的各个租户之间的租户数据进行隔离。
45.第一分配模块23:用于基于所述若干个租户中每一个租户的租户权限信息在每一个租户的命名空间内进行资源上限分配处理,获得若干个租户在每一个租户的命名空间内的分配资源上限数据信息;在本发明具体实施过程中,所述基于所述若干个租户中每一个租户的租户权限信息在每一租户的命名空间内进行资源上限分配处理,包括:利用所述若干个租户中每一个
租户的租户权限信息在所述云平台中匹配出若干个租户中每一个租户的租户权限信息的资源使用上限数据信息;基于若干个租户中每一个租户的租户权限信息的资源使用上限数据信息在每一个租户的命名空间内进行资源上限分配处理。
46.具体的,利用若干个租户中每一个租户的租户权限信息在云平台中匹配出若干个租户中每一个租户的租户权限信息的资源使用上限数据信息;然后根据若干个租户中每一个租户的租户权限信息的资源使用上限数据信息在每一个租户的命名空间内进行资源上限分配处理。通过这样为每一个租户进行资源配额,限制每一个租户在每一个租户的命名空间内可以使用的资源总量,如cpu、内存、存储、网络等资源;这样可以有效的防止某一个租户占用较多的资源,导致其他租户可分配的资源变少,从而影响其他租户的正常使用。
47.通过limitrange 对象为每个命名空间设置资源使用额度,即资源使用上限数据信息,在后续资源使用上限数据信息不够用时,租户可以通过申请的方式调整资源使用上限数据信息;这样子可以确保租户之间的资源使用更加公平。
48.第二分配模块24:用于基于所述若干个租户中每一个租户的租户资源需求信息按照每一个租户的命名空间内的分配资源上限数据信息进行资源分配处理,获得若干个租户在每一个租户的命名空间中的分配资源数据;在本发明具体实施过程中,所述基于所述若干个租户中每一个租户的租户资源需求信息按照每一租户的命名空间内的分配资源上限数据信息进行资源分配处理,包括:判断所述若干个租户中每一个租户的租户资源需求信息是否大于分配资源上限数据信息;若大于分配资源上限数据信息时,则在所述若干个租户中每一个租户的命名空间内按照每一个租户的分配资源上限数据信息进行资源分配处理;若小于分配资源上限数据信息时,则在所述若干个租户中每一个租户的命名空间内按照每一个租户的租户资源需求信息中的实际资源需求信息进行资源分配处理。
49.具体的,首先是需要判断若干个租户中每一个租户的租户资源需求信息是否大于分配资源上限数据信息;若大于分配资源上限数据信息时,则在若干个租户中每一个租户的命名空间内按照每一个租户的分配资源上限数据信息进行资源分配处理,同时需要向云平台申请调整分配资源上限数据信息;若小于分配资源上限数据信息时,则在若干个租户中每一个租户的命名空间内按照每一个租户的租户资源需求信息中的实际资源需求信息进行资源分配处理;这样可以保证租户所分配的资源得到合理的使用,提高资源的使用效率,减少资源浪费;对于当中的网络资源使用网络策略实现租户之间的网络隔离,为若干个租户中的每一个租户分配独立的网络子网,限制不同租户之间的网络访问,保证租户的网络使用安全;对于每一个租户的磁盘存储资源,则需要进行存储隔离,具体为每一个租户在磁盘中分配独立的存储卷,实现存储资源的隔离;同时,可以使用 storageclass 对象为不同租户提供不同级别的存储服务。
50.动态调度模块25:用于所述若干个租户在每一个租户的命名空间中按照分配资源数据运行时,基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。
51.在本发明具体实施过程中,所述基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理,包括:对所述每一个租户运行的应用程序的创建及更新进行实时监测,在监测到创建新的应用程序或更新运行
的应用程序后,获得创建新的应用程序或更新运行的应用程序所需的实时资源需求数据;或,对接收每一个租户的实时资源分配请求获得实时资源需求数据;基于每一个租户的历史资源使用数据及实时资源需求数据利用线性拟合的方式进行预设时间段内的资源需求数据预测处理,获得预测资源需求数据;所述容器编排引擎在每一个租户的命名空间内根据所述实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。
52.进一步的,所述利用动态资源调度算法进行分配资源数据的动态调度处理,包括:基于计算资源均衡分配设计和网络资源利用率的方式进行分配资源数据的动态调度处理;所述计算资源均衡分配设计基于计算cpu与内存之间的利用率差值计算获得,其中所述利用率差值越小,则计算资源均衡越高。
53.具体的,需要对每一个租户运行的应用程序的创建及更新进行实时监测,在监测到创建新的应用程序或更新运行的应用程序后,获得创建新的应用程序或更新运行的应用程序所需的实时资源需求数据;或,对接收每一个租户的实时资源分配请求获得实时资源需求数据;并且根据每一个租户的历史资源使用数据及实时资源需求数据利用线性拟合的方式进行预设时间段内的资源需求数据预测处理,即可得到预测资源需求数据;具体利用每一个租户的历史资源使用数据拟合出一个该租户在某一时间段内的拟合曲线,比如以一天时间为时间段,利用历史资源使用数据来进行一天时间段内的资源使用数据曲线拟合,即可得到拟合曲线,得到需要预测的预设时间段内在一天时间段内的具体时间段,然后得到对应的拟合曲线段,判断当前的实时资源需求数与对应的拟合曲线段的拟合值的差值,然后利用该预测数据在该差值进行相加及相减处理,形成一个预测范围值,将该预测范围值作为预测资源需求数据;然后该容器编排引擎在每一个租户对应的命名空间内根据实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理;即根据实时资源需求数据包括cpu资源需求数据、内存资源需求数据及网络资源需求和预测资源需求数据包括预测cpu资源需求数据、预测内存资源需求数据及预测网络资源需求利用动态资源调度算法进行分配资源数据的动态调度处理;具体为首先是判断实时资源需求数据和预测资源需求数据是否大于分配资源上限数据信息,在不大于分配资源上限数据信息时,按照时资源需求数据和预测资源需求数据的具体的资源需求数据进行资源动态调度处理,在资源动态调度时,cpu资源和内存资源使用率的分数需要大于等于预设分数,cpu资源和内存资源使用率的分数计算过程如下:score = 1
ꢀ‑ꢀ
|(cpu 使用率
ꢀ‑ꢀ
内存使用率)|,同时,网络资源的动态调度分配,需要保证网络资源利用率要大于等于90%;在实时资源需求数据大于分配资源上限数据信息时,需要判断预测资源需求数据是否大于分配资源上限数据信息,若大于时,则需要按照预测资源需求数据调整分配资源上限数据信息,然后按照调整后的分配资源上限数据信息,并按照调整后的分配资源上限数据信息进行资源需求数据的动态调度调整;在预测资源需求数据小于或等于分配资源上限数据信息时,则无需对分配资源上限数据信息,并按照分配资源上限数据信息进行资源动态调度调整,同时,动态调度调整需要满足cpu资源和内存资源使用率的分数需要大于等于预设分数,cpu资源和内存资源使用率的分数计算过程如下:score = 1
ꢀ‑ꢀ
|(cpu 使用率
ꢀ‑ꢀ
内存使用率)|,同时,网络资源的动态调度分配,需要保证网络资源利用率要大于等于90%。
54.在本步骤中,在命名空间内根据实时资源需求数据和预测资源需求数据来使用动
态资源调度算法进行分配资源数据的动态调度,可以实现根据每一个租户的在当前的实时资源需求数据和未来的预测资源需求数据,使得每一个租户所需要的资源得到重新调整,并且所分配的cpu资源和存储资源之间更为均衡,所分配的网络资源也可以得到更好的利用,从而确保资源分配的合理性,提高云平台的负载均衡度。
55.在利用动态资源调度算法进行分配资源数据的动态调度时,使用了新的资源利用率计算方式,并加入了网络利用率这一新的指标;算法采用资源均衡分配设计思想,计算 cpu 和内存利用率之间的差值。差值越小,说明 cpu 和内存使用越均衡,从而得分越高。其计算公式为:score = 1
ꢀ‑ꢀ
|(cpu 使用率
ꢀ‑ꢀ
内存使用率)|;及计算资源均衡分配设计是根据计算cpu与内存之间的利用率差值计算获得,其中利用率差越小,则计算资源均衡越高;在优选过程中,算法还考虑了网络利用率这一新的指标。网络利用率可以帮助确保集群中的网络资源得到合理分配,从而提高整个集群的负载均衡效率。
56.通过这种资源调度算法,容器编排引擎可以根据租户的需求和系统资源状况,动态分配计算资源、存储资源和网络资源;这样即可以实现更高的资源利用率、更好的安全性和更强的扩展性。
57.云平台中存在安全中心,主要用于若干个租户中每一个租户之间的安全隔离,包括网络隔离、存储隔离和计算资源隔离;其中网络安全隔离主要通过虚拟网络、子网和安全组等技术实现多租户之间的网络隔离,以防止网络攻击和数据泄露;存储隔离主要通过加密、访问控制和备份等技术实现多租户之间的存储隔离,以保证数据安全;计算资源隔离主要通过资源限制、资源预留和资源隔离等技术实现多租户之间的计算资源隔离,以防止资源争抢和性能干扰。
58.云平台中还包括监控与警告中心,主要用于对云平台运行的状态进行监控,发现异常时及时报警;监控指标主要是收集和存储系统的各种监控指标,如cpu使用率、内存使用率、磁盘使用率、网络流量、服务响应时间等;报警规则主要是根据预定义的报警规则,检测监控指标的异常情况,如资源使用超过阈值、服务响应时间过长等;报警通知主要是在发现异常时,通过邮件、短信或其他通知方式,及时通知运维人员进行处理。
59.在本发明实施例中,通过在容器编排引擎中为每一个租户创建一个命名空间,实现若干个租户中每一个租户之间的数据隔离,保证各个租户之间的数据安全;同时设置每一个租户的资源使用上限,这样可以有效的防止某一个租户占用过多的资源,采用动态资源调整,可以实现根据租户的实际情况进行资源重新调整,保证资源分配的灵活性。
60.本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例中任意一个实施例的云平台租户资源分配方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-only memory,只读存储器)、ram(random access memory,随即存储器)、eprom(erasable programmable read-only memory,可擦写可编程只读存储器)、eeprom(electrically erasable programmableread-only memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
61.本发明实施例还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一个实施例的云平台租户资源分配方法。
62.此外,图3是本发明实施例中的云平台的结构组成示意图。
63.本发明实施例还提供了一种云平台,如图3所示。所述云平台包括处理器302、存储器303、输入单元304以及显示单元305等器件。本领域技术人员可以理解,图3示出的云平台结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器303可用于存储应用程序301以及各功能模块,处理器302运行存储在存储器303的应用程序301,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(rom)、可编程 rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、zip盘、u盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
64.输入单元304用于接收信号的输入,以及接收用户输入的关键字。输入单元304可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元305可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元305可采用液晶显示器、有机发光二极管等形式。处理器302是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器303内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
65.作为一个实施例,所述云平台包括:一个或多个处理器302,存储器303,一个或多个应用程序301,其中所述一个或多个应用程序301被存储在存储器303中并被配置为由所述一个或多个处理器302执行,所述一个或多个应用程序301配置用于执行上述实施例中的任意一实施例中对的云平台租户资源分配方法。
66.在本发明实施例中,通过在容器编排引擎中为每一个租户创建一个命名空间,实现若干个租户中每一个租户之间的数据隔离,保证各个租户之间的数据安全;同时设置每一个租户的资源使用上限,这样可以有效的防止某一个租户占用过多的资源,采用动态资源调整,可以实现根据租户的实际情况进行资源重新调整,保证资源分配的灵活性。
67.另外,以上对本发明实施例所提供的一种基于容器化技术的云平台多租户资源分配方法及相关装置进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:
1.一种基于容器化技术的云平台租户资源分配方法,其特征在于,所述方法包括:云平台接收若干个租户的资源分配请求,所述资源分配请求中包含租户id、租户权限信息和租户资源需求信息;在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间;基于所述若干个租户中每一个租户的租户权限信息在每一个租户的命名空间内进行资源上限分配处理,获得若干个租户在每一个租户的命名空间内的分配资源上限数据信息;基于所述若干个租户中每一个租户的租户资源需求信息按照每一个租户的命名空间内的分配资源上限数据信息进行资源分配处理,获得若干个租户在每一个租户的命名空间中的分配资源数据;所述若干个租户在每一个租户的命名空间中按照分配资源数据运行时,基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。2.根据权利要求1所述的云平台租户资源分配方法,其特征在于,所述云平台接收若干个租户的资源分配请求,包括:所述云平台接收若干个租户中每一个租户发送的身份认证信息,所述身份认证信息包括租户的用户名及对应密码、租户的api密钥或第三方身份提供商提供的验证信息;所述云平台基于所述身份认证信息进行身份认证处理,并在身份认证通过后,向若干个租户中的每一个租户下发与所述身份认证信息对应的租户权限信息;所述云平台接收所述若干个租户中的每一个租户基于相对应的租户权限信息编辑生成资源分配请求;所述租户资源需求信息包括租户计算资源需求信息、租户存储资源需求信息及租户网络资源需求信息。3.根据权利要求1所述的云平台租户资源分配方法,其特征在于,所述在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间,包括:在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户按照每一个租户的租户id进行命名空间创建处理,获得每一个租户的命名空间;所述命名空间为逻辑隔离机制空间,用于将所述若干个租户中的各个租户之间的租户数据进行隔离。4.根据权利要求1所述的云平台租户资源分配方法,其特征在于,所述基于所述若干个租户中每一个租户的租户权限信息在每一租户的命名空间内进行资源上限分配处理,包括:利用所述若干个租户中每一个租户的租户权限信息在所述云平台中匹配出若干个租户中每一个租户的租户权限信息的资源使用上限数据信息;基于若干个租户中每一个租户的租户权限信息的资源使用上限数据信息在每一个租户的命名空间内进行资源上限分配处理。5.根据权利要求1所述的云平台租户资源分配方法,其特征在于,所述基于所述若干个
租户中每一个租户的租户资源需求信息按照每一租户的命名空间内的分配资源上限数据信息进行资源分配处理,包括:判断所述若干个租户中每一个租户的租户资源需求信息是否大于分配资源上限数据信息;若大于或等于分配资源上限数据信息时,则在所述若干个租户中每一个租户的命名空间内按照每一个租户的分配资源上限数据信息进行资源分配处理;若小于分配资源上限数据信息时,则在所述若干个租户中每一个租户的命名空间内按照每一个租户的租户资源需求信息中的实际资源需求信息进行资源分配处理。6.根据权利要求1所述的云平台租户资源分配方法,其特征在于,所述基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理,包括:对所述每一个租户运行的应用程序的创建及更新进行实时监测,在监测到创建新的应用程序或更新运行的应用程序后,获得创建新的应用程序或更新运行的应用程序所需的实时资源需求数据;或,对接收每一个租户的实时资源分配请求获得实时资源需求数据;基于每一个租户的历史资源使用数据及实时资源需求数据利用线性拟合的方式进行预设时间段内的资源需求数据预测处理,获得预测资源需求数据;所述容器编排引擎在每一个租户的命名空间内根据所述实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。7.根据权利要求6所述的云平台租户资源分配方法,其特征在于,所述利用动态资源调度算法进行分配资源数据的动态调度处理,包括:基于计算资源均衡分配设计和网络资源利用率的方式进行分配资源数据的动态调度处理;所述计算资源均衡分配设计基于计算cpu与内存之间的利用率差值计算获得,其中所述利用率差值越小,则计算资源均衡越高。8.一种基于容器化技术的云平台租户资源分配装置,其特征在于,所述装置包括:接收模块:用于云平台接收若干个租户的资源分配请求,所述资源分配请求中包含租户id、租户权限信息和租户资源需求信息;空间创建模块:用于在所述云平台的容器编排引擎中对所述若干个租户中的每一个租户进行命名空间创建处理,获得每一个租户的命名空间;第一分配模块:用于基于所述若干个租户中每一个租户的租户权限信息在每一个租户的命名空间内进行资源上限分配处理,获得若干个租户在每一个租户的命名空间内的分配资源上限数据信息;第二分配模块:用于基于所述若干个租户中每一个租户的租户资源需求信息按照每一个租户的命名空间内的分配资源上限数据信息进行资源分配处理,获得若干个租户在每一个租户的命名空间中的分配资源数据;动态调度模块:用于所述若干个租户在每一个租户的命名空间中按照分配资源数据运行时,基于每一个租户的实时资源需求数据和预测资源需求数据利用动态资源调度算法进行分配资源数据的动态调度处理。
9.一种云平台,包括处理器和存储器,其特征在于,所述处理器运行存储于所述存储器中的计算机程序或代码,实现如权利要求1至7中任一项所述的云平台租户资源分配方法。10.一种计算机可读存储介质,用于存储计算机程序或代码,其特征在于,当所述计算机程序或代码被处理器执行时,实现如权利要求1至7中任一项所述的云平台租户资源分配方法。

技术总结
本发明公开了一种基于容器化技术的云平台多租户资源分配方法及相关装置,涉及云计算技术领域,所述方法包括:云平台接收若干个租户的资源分配请求;在云平台的容器编排引擎中对若干个租户中的每一个租户进行命名空间创建处理;基于租户权限信息在命名空间内进行资源上限分配处理,获得命名空间内的分配资源上限数据信息;在命名空间内按照分配资源上限数据信息进行资源分配处理;若干个租户在每一个租户的命名空间按照分配资源数据运行时,利用动态资源调度算法进行分配资源数据的动态调度处理。在本发明实施例中,实现对每一个租户进行资源分配,保证每一个租户的运行,同时实现对每一个租户进行数据隔离,保证数据安全。保证数据安全。保证数据安全。


技术研发人员:林聪聪 连敬荣 邹园缘
受保护的技术使用者:工业富联(佛山)创新中心有限公司
技术研发日:2023.07.12
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐