本发明属于镜像同步,具体涉及一种基于共享存储的集群镜像同步改进方法。
背景技术:
1、针对集群环境下,不同docker仓库之间的镜像同步问题,现有技术基本都是引入新的仓库地址,简称云仓库;然后在镜像上传时,首先将镜像上传到集群单节点仓库,上传完成时,触发任务,将镜像再次上传到云仓库,然后再通过云仓库进行docker镜像的分发,从而实现集群内不同register节点之间的镜像同步。该技术存在明显却显得缺点就是,镜像文件需要经过两次push上传和多次pull下载操作。效率较低。
技术实现思路
1、为克服上述现有技术的不足,本发明的目的是提供一种基于共享存储的集群镜像同步改进方法,具有节省存储、效率高的特点。
2、为实现上述目的,本发明采用的技术方案是:一种基于共享存储的集群镜像同步改进方法,包括以下步骤:
3、步骤1,在集群各节点,挂载共享存储,然后通过集群首节点,安装镜像仓库和触发控制器;由触发控制器管理集群内镜像的同步;通过客户端进行镜像的上传和下载;
4、步骤2,通过客户端将镜像上传至集群内镜像仓库a,推送成功后,镜像仓库a内包含所上传的镜像,镜像所对应的文件保存在共享存储中,同时触发控制器接收到一条推送消息,推送消息为镜像仓库a发送;
5、步骤3,触发控制器接收到镜像仓库a的推送消息后,判断集群内镜像仓库b和镜像仓库c是否需要进行镜像同步,如果需要,触发控制器校验镜像仓库b和镜像仓库c的共享存储中的镜像文件是否完整,如果完整,更新镜像仓库b和镜像仓库c的索引;
6、步骤4,如果触发控制器接收到镜像仓库a的推送消息后,判断集群内其他镜像仓库b和镜像仓库c不需要进行镜像同步,则任务结束;如果镜像仓库b和镜像仓库c需要同步,但是共享存储中文件校验失败,则任务也结束;
7、步骤5,当触发控制器完成任务时,如果任务成功,则表示镜像同步完成;此时当客户端再次访问集群内镜像仓库b和镜像仓库c时,镜像仓库b和镜像仓库c内均可以检索到上传的镜像。
8、本发明的有益效果是:
9、本发明的方法通过集群环境存储的共享,从而实现镜像文件同步。当需要上传镜像到集群各节点时。只需将镜像上传到集群任意一个节点,然后在镜像上传完成后,触发任务,更新docker仓库的镜像索引。该技术无需进行镜像之间的来回上传下载,仅仅需要更新其索引即可,相较于镜像文件的上传下载,更新索引更加的高效。且该技术,镜像文件只需要存在一份,更加节省存储。
10、通过共享存储的方式,实现集群各节点docker register之间的镜像同步。该技术可以避免不同register之间通过上传下载的方式进行同步,从而增加同步效率,也可以避免同一镜像文件存储多份。
11、1)通过共享存储,更新索引的方式实现register之间的镜像同步。
12、2)增加同步效率、避免同一镜像存储多分,减少服务器压力。
1.一种基于共享存储的集群镜像同步改进方法,其特征在于,包括以下步骤: