一种基于边缘Serverless架构的多租户Kubernetes控制面管理的方法与流程

文档序号:37555305发布日期:2024-04-09 17:45阅读:9来源:国知局
一种基于边缘Serverless架构的多租户Kubernetes控制面管理的方法与流程

本发明涉及租户kubernetes控制面管理,具体为一种基于边缘serverless架构的多租户kubernetes控制面管理的方法。


背景技术:

1、serverless是云计算的一种模型,以平台即服务(paas)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供,serverless服务无处不在,serverless编程方式的演变背后的驱动力来自各种形式,包括应用程序托管平台、serverless数据库、cdn、安全产品等,serverless产品消除了底层配置、可伸缩性和维护方面的问题,剩下的就是分发问题。

2、边缘serverless通过在多个数据中心之间分布数据和算力来提供解决方案,边缘serverless通过让计算更靠近用户来达到减少延迟的目的。边缘serverless是从云架构发展而来。

3、kubernetes,简称k8s,是用8代替名字中间的8个字符“ubernete”而成的缩写,是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效,kubernetes提供了应用部署,规划,更新,维护的一种机制,传统的应用部署方式是通过插件或脚本来安装应用,这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性,新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源,相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移,容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,更便于监控和管理。

4、kubernetes原生控制面的高可用部署方式一般最少需要三台服务器,在上面部署kube-apiserver、kube-controller-manager、kube-scheduler、etcd等。

5、首先,在多租户的场景下,服务器的数量最少为3*用户数,且绝大部分服务器的资源是处于闲置状态,无形之中造成了较大的资源浪费和运营成本,并且,该k8s控制面上需要接入多个边缘的、无服务器、无需运维的kubernetes虚拟节点(virtual kubelet),能够将用户的应用部署到各个边缘区域,这些边缘virtual kubelet需要运行在租户k8s控制面上的物理节点,这部分需要额外的服务器资源。

6、同时,随着用户数增加,kubernetes集群的数量随之增加,管理多个租户kubernetes集群的运维复杂度极高,同时,基于边缘serverless架构,提供给用户的是一种按需使用、按需付费的边缘部署能力,这部分租户k8s集群的成本是一个较大的挑战。

7、再者,原生租户级kubernetes高可用的物理隔离方式,适合于中心式的部署方式,在边缘serverless场景下,租户kubernetes集群需要具备一对多的部署能力,即可以将pod部署到多个边缘k8s集群。

8、最后,基于边缘serverless场景,租户pod是部署在边缘集群,无法使用原生的方式去访问租户k8s集群,原生kubernetes体验缺失。


技术实现思路

1、本发明提供的发明目的在于提供一种基于边缘serverless架构的多租户kubernetes控制面管理的方法。对比于直接的物理隔离,本专利提供了一个多租共享的物理kubernetes集群,多个租户的k8s控制面和virtual kubelet节点都部署在上面,轻量化部署,资源利用率高,资源成本大量降低,提供kubernetes in kubernetes的管理模式,使用标准的capi管理租户k8s集群,极大降低运维复杂度,支持边缘serverless架构,提供多租隔离能力,租户视角只有虚拟集群(vcluster)和自己的边缘serverless虚拟节点(virtual kubelet),保障物理集群和物理节点的安全性,基于边缘serverless架构下,提供k8s原生使用体验支持,同时支持边缘多集群部署。

2、为了实现上述资源成本高、运维复杂度高、安全性较差的问题,本发明提供如下技术方案:一种基于边缘serverless架构的多租户kubernetes控制面管理的方法,包括以下步骤:

3、步骤一、基础创建:在物理集群上创建基础使用底层部署。

4、步骤二、自定义cluster-api-vcluster-provider:基于边缘serverless场景下,实现cluster-api协议的vcluster提供者。

5、步骤三、自定义virtual kubelet controller:提供了为租户创建多个与租户id关联的serverless virtual kubelet节点。

6、步骤四、自定义vcluster syncer:增强对多租户边缘serverless场景的支持能力。

7、步骤五、租户使用:租户通过拿到的虚拟集群的文件进行访问。

8、步骤六、运维控制:在物理集群通过capi对多个虚拟集群进行控制操作。

9、进一步的,在步骤一中,所述创建基础使用底层部署包括esk.infrastructure.cluster.x-k8s.io/v1/vclustercr和serverless.esk.ctyun.cn/v1/virtualnodecr。

10、进一步的,在步骤一中,所述esk.infrastructure.cluster.x-k8s.io/v1/vclustercr指明k8s发行版,存储类型,租户id、集群域名和集群暴露方式,所述serverless.esk.ctyun.cn/v1/virtualnodecr指明租户id、边缘k8s集群的唯一标识和kubeconfig的base64编码文本集合。

11、进一步的,在步骤二中,所述cluster-api-vcluster-provider根据k8s发行版,匹配对应的helm chart仓库,再根据相关参数,在物理k8s集群上部署一个租户k8s集群,并部署vcluster syncer进程,对上游虚拟集群和下游物理集群之间进行资源同步。

12、进一步的,在步骤二中,所述cluster-api-vcluster-provider管理了vcluster的生命周期,创建、服务对外暴露、升级和回收,所述cluster-api-vcluster-provider为创建的vcluster携带了租户的信息-租户id,为租户关联自己的多个边缘serverless虚拟节点(virtual kubelet)。

13、进一步的,在步骤三中,所述自定义virtual kubelet controller创建出virtualkubelet节点,所述virtual kubelet controller是基于kuber netes的控制器模式开发。

14、进一步的,在步骤四中,所述vcluster syncer根据租户id,将物理集群上租户的virtual kubelet节点同步到虚拟集群,达到租户virtual kubelet节点隔离的功能,所述vcluster syncer提供了对边缘server less部署能力的支持,支持租户将pod部署到多个边缘kubernetes集群,具备多集群部署的能力。

15、进一步的,在步骤四中,所述vcluster syncer提供了对serverless边缘存储能力(pv、pvc),边缘配置热加载能力(configmap、secret),边缘kubeconfig、serviceaccount连接vcluster能力的适配,提供了租户kubernetes控制面隔离和原生kubernetes体验的能力。

16、进一步的,在步骤五中,所述租户拿到的虚拟集群的文件为kubeconfig文件,并通过kubeconfig文件进行访问,所述租户视角下是一个纯净的k8s集群和多个边缘serverless节点。

17、进一步的,在步骤五中,所述租户通过deployment部署多个pod到各个边缘serverless节点,并使用serviceaccount,该pod被部署到各个边缘k8s集群,并支持连接到租户的虚拟集群,提供租户原生的k8s体验,租户感知不到是虚拟集群。

18、进一步的,在步骤六中,所述运维对多个虚拟集群进行控制操作包括批量升级、全量升级、批量删除和监控,简化运维复杂度。

19、本发明提供了一种基于边缘serverless架构的多租户kubernetes控制面管理的方法,具备以下有益效果:对比于直接的物理隔离,本专利提供了一个多租共享的物理kubernetes集群,多个租户的k8s控制面和virtual kubelet节点都部署在上面,轻量化部署,资源利用率高,资源成本大量降低,提供kubernetes in kubernetes的管理模式,使用标准的capi管理租户k8s集群,极大降低运维复杂度,支持边缘serverless架构,提供多租隔离能力,租户视角只有虚拟集群(vcluster)和自己的边缘serverless虚拟节点(virtualkubelet),保障物理集群和物理节点的安全性,基于边缘serverless架构下,提供k8s原生使用体验支持,同时支持边缘多集群部署。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1