翻译一下吧,应该想表达的是:如何利用harbor组建支持P2P的镜像服务。
对于harbor高可用设计,这方面已经非常成熟了,课程中也讲的很通透,但是对于快速分发,目前p2p的技术非常流行,简单介绍一下。
镜像分发原理
当用户通过Admin Console向DID系统提交一个镜像分发任务(Job)之后,控制器会进行以下处理:
❶ 通过本地的Docker Daemon REST API从Registry下载镜像到本地镜像仓库;
❷ 调用Docker Daemon API从镜像仓库导出(export)镜像文件(镜像tar文件);
❸ 从镜像tar文件中抽取出组成镜像的所有layer并进行压缩;
❹ 为每一个压缩后的layer制作BT种子文件;
❺ 启动BT客户端载入所有压缩后的layer和相应的种子文件,此时控制器所在节点的BT客户端将成为一个Seeder;
❻ 向各个客户端代理发送该镜像的下载任务。任务说明中包含了组成该镜像的所有layer的ID和其对应的种子文件的URL。
在客户端代理接收到来自控制器的镜像下载任务后会进行以下处理:
❶ 针对该镜像的每一个layer,通过调用检查其在本地是否已存在,把不存在的layer ID加入到待下载列表中;
❷ 对下载列表中的layer,下载对应的种子文件,并启动BT客户端完成layer文件的下载;
❸ 通过Docker daemon的API将下载完成的layer文件导入到Docker daemon中;
❹ 重复步骤2和步骤3直到所有待下载layer全部被导入到Docker daemon中。注:每个layer的下载过程是并发执行的。