【技术实现步骤摘要】
一种基于区块链的容器镜像仓库装置及方法
[0001]本专利技术涉及
IT
应用领域,尤其是涉及一种基于区块链的容器镜像仓库装置及方法
。
技术介绍
[0002]镜像库作为容器技术的核心组件,其高可用一直是重点保障工作
。
现有的容器镜像仓库技术方案中以
Harbor
为代表,
Harbor
架构图大致如图1所示
。
图1中,
Harbor
包括
Proxy、Registry、Core services
和
Database。
其中,
Proxy
对应启动组件,比如
nginx
,是一个反向代理组件
。Harbor
的
registry、UI、token services
等组件,都处在一个反向代理后边,该代理负责将来自浏览器
、docker clients
的请求转发到后端服务上
。Registry
对应启动组件
registry
,负责存储
Docker
镜像文件,以及处理
Docker
的
push、pull
等请求
。Harbor
对镜像进行强制的访问控制,
Registry
会将客户端的每个
pull、push
请求转发到
token
服务来获取有效的r/>token。Core services
是
Harbor
的核心功能,主要包括3个服务:
UI、Job services
和
Log collector。Job services
对应启动组件
harbor
‑
jobservice
,主要用于镜像复制,和
registry
通信,本地镜像可以
push
到
Harbor
镜像仓库中,同样也可以从
Harbor
镜像仓库中
pull
到本地
。Log collector
对应启动组件
harbor
‑
log
,负责收集其他模块的日志到一个地方
。Database
对应启动组件
harbor
‑
db
,负责存储
metadata
数据
。
[0003]Harbor
提供了两种高可用方案:
[0004]1)
双主复制
[0005]双主复制方案就是复用主从同步实现两个
harbor
节点之间的双向同步,来保证数据的一致性
。
如图2所示,在两台
harbor
前端配置一个负载均衡器将进来的请求分流到不同的实例中去,只要有一个实例中有了新的镜像,就自动地同步复制到另外的实例中去,这样实现了负载均衡,在一定程度上实现了
Harbor
的高可用性
。
[0006]2)
共享存储
[0007]如图3所示,共享后端存储就是多个
Harbor
实例共享同一个后端存储,包括数据库
、redis
和本地存储数据;任何一个实例的持久化数据到存储的镜像,都可被其他实例中读取复制
。
通过负载均衡进来的请求,可以分流到不同的实例中去处理,这样就实现了高可用
。
[0008]在上述“双主复制”方案中,
Harbor
节点之间的镜像同步依赖内部的
Job Service
组件,同过该组件发起异步镜像同步任务来执行镜像同步,如果发起同步的
Harbor
节点异常下线则会导致同步失败,且同步过程容易受网络环境影响而导致同步不一致
。
在“共享存储”方案中,共享的存储容易成为性能瓶颈,也存在单点故障隐患
。
[0009]根据现有的解决方案可知,现有方案镜像库存在如下缺点:
[0010]1)Harbor
中的镜像库基于共享存储容易产生性能瓶颈和单点故障
。
[0011]2)
在
Harbor
网络中,节点间镜像同步基于中心化的方式以异步任务的形式发起,同步过程依赖于网络,容易受网络影响,且未提供网络波动
、
节点故障
、
宕机等异常情形提
供有效的应对措施,也就无法保证节点间文件的一致性,文件节点间数据同步不可靠,服务宕机或者网络波动等都会造成数据不一致的现象,大大降低了文件传输的准确性,提高了服务商运维成本,极大的降低了用户的上传
/
下载体验
。
[0012]上述现状对于服务商和用户来说都是急需解决改进的
。
技术实现思路
[0013]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于区块链的容器镜像仓库装置及方法,避免了原有技术方案中基于共享存储而导致的性能问题以及单点故障隐患
。
[0014]本专利技术的目的可以通过以下技术方案来实现:
[0015]一种基于区块链的容器镜像仓库装置,包括若干个镜像仓库节点,各镜像仓库节点均包括镜像服务组件
、
区块链组件和
IPFS
组件,各镜像仓库节点的所述区块链组件共同构成一个区块链网络,其中,
[0016]所述镜像服务组件用于实现镜像的上传和下载;
[0017]所述
IPFS
组件用于存储镜像,且镜像仓库节点的所述
IPFS
组件形成镜像的分布式多副本存储;
[0018]所述区块链组件利用镜像同步检测智能合约检测本地
IPFS
组件是否存有对应的镜像并触发各镜像仓库节点间的镜像同步
。
[0019]进一步地,所述镜像服务组件包括服务控制层
、
区块链服务对接层和
IPFS
服务对接层,所述服务控制层用于进行身份验证
、
镜像管理
、
合约管理和节点管理,并分别通过所述区块链服务对接层和
IPFS
服务对接层对应连接区块链组件和
IPFS
组件
。
[0020]本专利技术还提供一种采用如上所述的基于区块链的容器镜像仓库装置的镜像上传方法,包括以下步骤:
[0021]某个镜像仓库节点的镜像服务组件获取用户镜像上传请求;
[0022]镜像服务组件解析所述用户镜像上传请求,获取镜像文件,将所述镜像文件上传到本地
IPFS
组件中,并计算获得所述镜像文件对应的文件
HASH
;本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种基于区块链的容器镜像仓库装置,其特征在于,包括若干个镜像仓库节点,各镜像仓库节点均包括镜像服务组件
、
区块链组件和
IPFS
组件,各镜像仓库节点的所述区块链组件共同构成一个区块链网络,其中,所述镜像服务组件用于实现镜像的上传和下载;所述
IPFS
组件用于存储镜像,且镜像仓库节点的所述
IPFS
组件形成镜像的分布式多副本存储;所述区块链组件利用镜像同步检测智能合约检测本地
IPFS
组件是否存有对应的镜像并触发各镜像仓库节点间的镜像同步
。2.
根据权利要求1所述的基于区块链的容器镜像仓库装置,其特征在于,所述镜像服务组件包括服务控制层
、
区块链服务对接层和
IPFS
服务对接层,所述服务控制层用于进行身份验证
、
镜像管理
、
合约管理和节点管理,并分别通过所述区块链服务对接层和
IPFS
服务对接层对应连接区块链组件和
IPFS
组件
。3.
一种采用如权利要求1或2所述的基于区块链的容器镜像仓库装置的镜像上传方法,其特征在于,包括以下步骤:某个镜像仓库节点的镜像服务组件获取用户镜像上传请求;镜像服务组件解析所述用户镜像上传请求,获取镜像文件,将所述镜像文件上传到本地
IPFS
组件中,并计算获得所述镜像文件对应的文件
HASH
;镜像服务组件调用本地区块链组件,将镜像基础信息上传到区块链网络中;利用镜像同步检测智能合约检测当前上传的镜像在其他的镜像仓库节点中是否存在,如果不存在,则向已有该镜像的镜像仓库节点发起镜像同步请求;镜像仓库节点收到所述镜像同步请求后,将镜像文件同步至处于同一
IPFS
网络中其他镜像仓库节点
。4.
根据权利要求3所述的镜像上传方法,其特征在于,所述用户镜像上传请求包括镜像文件
、
...
【专利技术属性】
技术研发人员:慕世勋,
申请(专利权)人:上海天玑数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。