System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种多租户的镜像仓库改造方法及装置制造方法及图纸_技高网

一种多租户的镜像仓库改造方法及装置制造方法及图纸

技术编号:40966481 阅读:5 留言:0更新日期:2024-04-18 20:47
本申请涉及一种多租户的镜像仓库改造方法及装置,通过让部分有状态的组件能根据租户的增减而动态扩缩容,独立存储带租户信息需要隔离的数据;让无状态的组件能适应多租户模式下运行,继续提供单一功能能力。本申请能够实现多租户管理,无需部署多套Harbor,大大节省资源使用;兼容原有的OCI客户端,以更节省资源的运行模式来应对多租户使用场景。

【技术实现步骤摘要】

本申请属于容器镜像服务,尤其涉及一种多租户的镜像仓库改造方法及装置


技术介绍

1、容器运行离不开容器镜像,容器镜像被镜像仓库所管理。docker的registry项目(后更名成docker-distribution)作为一个轻量的镜像仓库。它提供了较为简单的容器镜像的存储能力与分发能力。它既简单又安全,又具备很好的扩展性,因此不少其他开源项目也使用它来作为底层核心存储库。由vmware开源的云原生制品仓库harbor也就是其中之一。鉴于docker-distribution功能简单,因此在企业级应用中仍有不少功能需要补充,如对镜像仓库所属命名空间的管理,对镜像扫描,对镜像进行签名,对镜像进行跨实例的同步等。这样对整个容器镜像仓库进行架构上的调整。将其从上到下分成了代理层、功能层和数据层。比如对外暴露服务,提供api能力的harbor-core,执行实际扫描的harbor-trivy,这些属于功能层;前文提到的docker-distribution在此处用于镜像的实际存储,redis用于作为任务消息队列及缓存,执行各种任务包括垃圾回收、镜像同步的harbor-jobservice,用于存储整套系统所有结构化数据的postgresql数据库,这些属于数据层。

2、在容器镜像存储管理方面,harbor对比docker-distribution多了一层project层,多了project的好处是同一个镜像仓库可以从属于不同的project中,使得可以基于project来分配给不同团队使用或分配给不同用户使用,相互隔离,互补干扰。因此harbor对project是增加了rbac管理,project可以设置访问级别,公开的project下所有镜像仓库可以允许匿名拉取,私有project下的镜像仓库仅允许具备权限的用户通过登录认证后拉取。harbor多增加project一层隔离镜像仓库符合了团队使用镜像仓库服务的正常业务发展需求。但随着团队题量增大,单纯按镜像按project隔离镜像仓库已不满足需求。假若现出现多个团队间均要使用同一个名称的project,虽然同名,但两个团队实际需要的是两个独立隔离的project,project中的所有镜像不一致,且团队间互相不能访问到对方的project。


技术实现思路

1、鉴于以上现有技术的不足,专利技术的目的在于提供一种多租户的镜像仓库改造方法及装置,让部分有状态的组件能根据租户的增减而动态扩缩容,独立存储带租户信息需要隔离的数据;让无状态的组件能适应多租户模式下运行,继续提供单一功能能力。以更节省资源的运行模式来应对多租户使用场景。

2、本申请的第一方面,提出了一种多租户的镜像仓库改造方法,该方法包括:

3、s1,创建新租户,并在组件中新开辟资源给创建的新租户独占使用;

4、s2,通过oci客户端执行命令从镜像服务拉取容器镜像;

5、s3,通过harbor-core转递镜像信息给其他组件。

6、进一步的,在步骤s1之前,该方法还包括:对harbor的各个组件进行修改。

7、进一步的,在postgresql里面的关键数据表中加上tenantid字段,包括atrifact、blob、repository和project,以让存放的数据带上租户信息,并新增tenant表记录租户信息。

8、进一步的,将registry、registry-ctl和chart-museum三个组件合并成一个,通过不同端口对外暴露api。

9、进一步的,在harbor-core中增加tenant中间件,用于从发来的请求的header或者host中提取信息,存入context传递给后续的处理逻辑。

10、进一步的,在harbor-core中,相关数据库的实体类增加tenantid字段,相关api及数据库持久化dao操作加上对tenant信息的处理逻辑,包括从context中获取tenant信息,对默认tenant的赋值处理。

11、进一步的,在harbor-core中,新增对租户管理的相关api及逻辑,包括post/api/v2.0/tenants和delete,/api/v2.0/tenants/{tenantid},get/api/v2.0/tenants,用于创建、删除以及查询租户信息;

12、进一步的,实现新的registry客户端,继承现有harbor-registry,在创建registry访问地址时按照数据记录的tenantid或者context中获取信息,选用默认registry服务名或者带租户信息的服务名。

13、进一步的,对所在kubernetes集群的coredns组件增加泛域名解析重定向。

14、一种多租户的镜像仓库改造装置,包括:存储器单元和处理器单元,所述存储器单元上存储有计算机程序,其特征在于,所述处理器单元执行所述程序时实现上述方法。

15、本申请有益效果如下:本申请能够实现多租户管理,无需部署多套harbor,大大节省资源使用;兼容原有的oci客户端,诸如容器镜像制品的代表docker,chart的代表helm和普通oci的oras。

本文档来自技高网...

【技术保护点】

1.一种多租户的镜像仓库改造方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在步骤S1之前,所述方法还包括:对Harbor的各个组件进行修改。

3.根据权利要求2所述的方法,其特征在于,在PostgreSQL里面的关键数据表中加上tenantId字段,包括atrifact、blob、repository和project,以让存放的数据带上租户信息,并新增tenant表记录租户信息。

4.根据权利要求2所述的方法,其特征在于,将registry、registry-ctl和chart-museum三个组件合并成一个,通过不同端口对外暴露API。

5.根据权利要求4所述的方法,其特征在于,在Harbor-core中增加tenant中间件,用于从发来的请求的Header或者Host中提取信息,存入context传递给后续的处理逻辑。

6.根据权利要求4所述的方法,其特征在于,在Harbor-core中,相关数据库的实体类增加tenantId字段,相关API及数据库持久化DAO操作加上对tenant信息的处理逻辑,包括从context中获取tenant信息,对默认tenant的赋值处理。

7.根据权利要求4所述的方法,其特征在于,在Harbor-core中,新增对租户管理的相关API及逻辑,包括POST/api/v2.0/tenants和DELETE,/api/v2.0/tenants/{tenantId},GET/api/v2.0/tenants,用于创建、删除以及查询租户信息。

8.根据权利要求2所述的方法,其特征在于,实现新的registry客户端,继承现有harbor-registry,在创建registry访问地址时按照数据记录的tenantId或者context中获取信息,选用默认registry服务名或者带租户信息的服务名。

9.根据权利要求2所述的方法,其特征在于,对所在Kubernetes集群的CoreDNS组件增加泛域名解析重定向。

10.一种多租户的镜像仓库改造装置,其特征在于,包括:存储器单元和处理器单元,所述存储器单元上存储有计算机程序,其特征在于,所述处理器单元执行所述程序时实现如权利要求1至9中任一项所述的方法。

...

【技术特征摘要】

1.一种多租户的镜像仓库改造方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在步骤s1之前,所述方法还包括:对harbor的各个组件进行修改。

3.根据权利要求2所述的方法,其特征在于,在postgresql里面的关键数据表中加上tenantid字段,包括atrifact、blob、repository和project,以让存放的数据带上租户信息,并新增tenant表记录租户信息。

4.根据权利要求2所述的方法,其特征在于,将registry、registry-ctl和chart-museum三个组件合并成一个,通过不同端口对外暴露api。

5.根据权利要求4所述的方法,其特征在于,在harbor-core中增加tenant中间件,用于从发来的请求的header或者host中提取信息,存入context传递给后续的处理逻辑。

6.根据权利要求4所述的方法,其特征在于,在harbor-core中,相关数据库的实体类增加tenantid字段,相关api及数据库持久化dao操作加上对tenant信息的处理逻辑...

【专利技术属性】
技术研发人员:何健勇林炜斌林位宁蔡岳阳
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1