千家信息网

如何用Harbor实现容器镜像仓库的管理和运维

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章给大家分享的是有关如何用Harbor实现容器镜像仓库的管理和运维,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。这里主要讲述了在开
千家信息网最后更新 2025年12月02日如何用Harbor实现容器镜像仓库的管理和运维

本篇文章给大家分享的是有关如何用Harbor实现容器镜像仓库的管理和运维,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

这里主要讲述了在开发运维中的管理容器镜像方法。为了便于说明原理,较多地使用Harbor作为例子。

内容主要包括:
1)开发和生产环境中镜像仓库的权限控制
2)镜像远程同步(复制)的原理
3)大规模应用镜像发布方式;
4)镜像删除和空间回收
5)Registry高可用性设计。

首先简单介绍一下Harbor项目。Harbor是由VMware中国研发团队负责开发的开源企业级Registry,可帮助用户迅速搭建企业级的registry 服务。该项目发布5多个月以来,深受用户喜爱,在GitHub 获得了近1000个点赞星星和200多个 forks。有兴趣的朋友可以使用: https://github.com/vmware/harbor

容器应用的使用越来越普遍,容器最大优点就是开发运维一体化,通过容器镜像打包应用,使得开发、测试和发布都具有相同的运行环境,带来极大的便利。那么镜像在实际运维中处于怎样的地位呢?

我们先看看下面这张经典的Docker容器的生命周期图:

从图中可以看到,容器镜像的关联箭头最多,不言而喻,镜像技术就是容器的核心所在。概括地说,容器包含一静一动两部分:静态存放的镜像(images)和动态运行的containers。相应地,容器的开发运维主要涉及镜像管理和运行时(Runtime)管理两部分。本文主要和大家分享的是容器镜像管理的部分。

1)开发和生产环境中镜像仓库的权限控制

在企业中,通常有不同的开发团队来负责不同的应用项目,和源代码分项目管理一样,镜像也需要按照项目来存放和管理。由于团队中有不同的成员,如项目经理、产品经理、开发、测试和运维等人员,每人使用镜像的需求不同,因此可以根据角色分配相应的权限。

例如,测试人员通常只需要镜像的读权限(pull),开发人员需要读写权限(push/pull),项目经理除了拥有开发人员的权限之外,还可以增加和删除项目成员,设定他们的角色。
在Harbor Registry中,每个项目可有三种角色:项目管理员(project admin)、开发者(developer)和客人(guest)。某些项目,如放在library中的公共镜像, 可以允许匿名访问,即用户不同docker login也可以访问,这样可以方便使用。在整个系统中,还设有系统管理员,具有维护镜像同步策略、用户增删等权限。

需要指出的是,在不同的环境中,某个成员的角色可以不同。例如,在开发环境的registry中,运维人员一般不需要权限(或需要只读权限);而在生产环境中的Registry,运维人员就需要有读写权限。下图是Harbor的权限管理界面:

开发环境的Registry: 主要由开发人员使用,镜像变化频繁。当开发完成后,通过CI系统生成稳定镜像,同步到测试Registry;

测试环境的Registry: 主要由测试人员使用,镜像保持不变。当测试通过后,同步到准生产环境的Registry;

准生产环境的Registry: 主要由测试和运维人员使用,镜像保持不变。当准生产环境试运行后,最后再同步生产环境的Registry;

生产环境的Registry: 发布镜像到生产环境运行。

从开发到生产的整个过程中,实现容器镜像的Build-Ship-Run过程。Harbor可以提供Registry之间的镜像自动同步和复制功能,简化了管理。

3)大规模应用镜像发布方式;

在实际生产运维的中,往往需要把镜像发布到几十或上百台集群节点上。这时,单个Registry已经无法满足大量节点的下载需求,因此要配置多个registry实例做负载均衡。手工维护多个registry实例上的镜像,将是十分繁琐的事情。Harbor可以支持一主多从的镜像发布模式,可以解决大规模镜像发布的难题。

在同步过程中,如果源镜像已删除,Harbor会自动同步删除远端的镜像。在镜像同步复制的过程中,Harbor会监控整个复制过程,遇到网络等错误,会自动重试。

这是同步复制的监控画面:

一种比较标准的方案,就是多个的Registry实例共享同一个后端存储,任何一个实例持久化到存储的镜像,都可被其他实例中读取。通过前置LB进来的请求,可以分流到不同的实例中去处理,实现了负载均衡,也避免了单点故障。

应该指出,实际中需要考虑的问题远比上述模型复杂。例如,共享存储的选取,用户session在不同的实例上共享等等。用户可根据自己业务要求设计出不同的方案。Harbor将会推出基于swift分布式存储,以及共享session的方案(采用redis)来满足用户的需求。

如果没有共享存储,另一种方案就是在两个节点间采用双主复制策略,互相复制镜像。即使有一个实例失效,另一个实例仍然可以提供服务,从而在一定程度上可以满足HA的需求。


节点出现故障的时候,有vSphere自动切换到好的节点上,镜像数据不丢失。

以上就是如何用Harbor实现容器镜像仓库的管理和运维,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

镜像 开发 环境 容器 管理 权限 项目 生产 不同 同步 人员 实例 用户 测试 多个 就是 节点 过程 存储 应用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界加入不了服务器怎么办 citrix服务器配置 软件开发属于什么职位类别 oracle数据库效率提高 电子文件网络安全 深圳服务器系统集成服务方案费用 未成年人学习网络安全教育 做网络安全项目是什么 嘉定区营销软件开发服务保障 新版通达信如何迁移用户数据库 华为服务器imana 数据库保存到哪里 提高网络安全创建美好生活手抄报 首部网络安全法实施 台达650w服务器电源 天佑把快手服务器弄卡 运用网络技术一般按哪些步骤进行 讧苏极限网络技术股份有 软件开发毕设可以做些什么 荔湾软件开发哪里实惠 人脸图像数据库下载 软件开发托管 内蒙古创新网络技术服务怎么样 鄞州直销软件开发工具 rfid系统用什么软件开发 大数据与网络安全专业怎么样 软件开发技术入股协议 数据库与原理考试题 外卖系统数据库 逻辑 软件开发服务计量单位填什么
0