首页 > 编程知识 正文

harbor同步(harbor webhook)

时间:2023-05-03 20:07:07 阅读:93705 作者:4720

利用Harbor利器构建专用镜像仓库

目录1、Harbor的背景32、Harbor体系结构概要33、Harbor特性44、Harbor环境的引入55、Harbor权限管理和仓库间的镜像远程复制86、总结127、参考资料12

近年来,随着docker容器技术的发展,各行业的各企业似乎都在探讨docker容器、弹性伸缩、持续集成等技术。 大家似乎都想借助docker容器技术登上云端。 个子高,长高一根。 脱轨了。 脱轨了。 今天不是共享镜像仓库吗? 有机会可以和大家一起探讨这些新潮技术。 言归正传,回到这次的共享主题“Harbor集装箱镜像仓库”。 一个项目需要使用Harbor作为镜像的存储仓库,研究这个产品花了很多时间。 通过试用,我觉得用于管理docker镜像操作的可视化Web界面很简单,为多个项目提供了镜像权限管理控制。 接下来,我们将介绍Harbor镜像仓库管理。 介绍Harbor自身的特性以及Harbor专用仓库的构建方法。

1、 Harbor背景

VMware公司于去年3月开放了企业级集装箱Registry项目Harbor,由VMware中国开发的团队负责开发。 Harbor帮助用户快速构建企业级的注册表服务。 Harbor提供了图形界面管理、基于角色的访问控制RBAC、镜像远程复制(同步)、AD/LDAP集成和分析日志等满足企业用户需求的功能许多开源社区的开发人员也为Harbor项目添加了平铺,提供代码贡献、问题反馈和建议。 在大家的共同努力下,Harbor项目开始以来,在GitHub上获得了近2000颗好评星和500多只福克斯。

2、 Harbor 架构简介

此照片来源: https://my.oschina.net/VMware Harbor/blog/650964

由上图可见,Harbor系统由以下五个组件组成:

基于

3、 Harbor特性

角色控制

虽然用户和仓库是基于项目组织的,但是用户可以基于项目拥有不同的权限。

基于镜像的复制策略

可以在多个Harbor实例之间复制(同步)镜像。 适用于负载平衡、高可用性、多个数据中心、混合和多云的场景。

支持LDAP/AD

Harbour与现有企业LDAP/ADA集成,用于用户认证和管理。

图像删除和垃圾收集

可以删除镜像,也可以重新使用镜像占用的空间。

图形用户界面

用户可以轻松浏览、搜索镜像仓库和管理项目。

鉴查

跟踪对存储库的所有操作。

rest风格的应用程序

用于大多数管理操作的rest风格的API易于与外部系统集成。

引进简单

同时提供在线和离线安装程序。 此外,还为vSphere平台(OVA )提供了虚拟设备。

安装

4、 Harbor环境部署

Harbor有三种方法。

1 .在线安装:安装软件从Docker hub下载Harbour的镜像,所以安装软件包非常小。

2 .离线安装:如果主机没有外部网的访问权限,可以在Harbor官网上下载并安装离线软件包。 由于离线软件包含预制构件,因此文件会变大。

3 .虚拟设备:作为vSphere集成容器(VIC )的注册表组件安装Harbor时,或者在vSphere平台上使用Harbor作为独立的注册表时,使用OVA版本

下面介绍如何脱机安装harbor仓库。 另外,请两个对如何安装harbor软件感兴趣的朋友参考并验证harbor的官方文档。

Harbor的官方地址:

359 github.com/VMware/harbor/blob /主/文档/安装指南. MD

1、下载Harbor离线软件包

在此,以Harbor版本0.4.5为例进行安装。 首先去Harbor官网下载离线包,上传服务器进行解压。

由于Harbor由多个容器组成,因此必须使用docker-compose加载docker-compose.yml工程配置文件并停止启动Harbor组件容器。

2、Harbor的配置

注意从docker 1.10开始,所使用的注册表v2镜像仓库需要通过https方式进行访问。 Harbor包含harbor.cfg文件,需要事先更改配置。

要配置的参数如下:

hostname:私有仓库的主机名。可以是IP地址或是域名。

ui_url_protocol:用户访问私仓使用的协议,默认时http,这里配置成https;

harbor_admin_password:harbor的管理员账户密码,默认密码是Harbor12345

指向正确的https证书文件目录

3、 https 证书配

修改配置文件/etc/pki/tls/openssl.cnf

指定CA服务器地址为harbor仓库服务器地址

然后执行以下命令来生成 ca.crt 和 ca.key两个证书文件。注意这里的CN=XXX和IP=XXX,如果Harbor用域名来访问则XXX换成域名,如果使用的是IP访问https访问则配置ip, 将证书文件生成到 /opt/cert目录。

4、 安装并启动Harbor

在安装Harbor之前需要提前规划一个比较大的存储空间用于存储Harbor的镜像、数据库和日志。以保证后续Harbor系统运行良好。

./ prepare

系统已经提前准备好一个大的文件系统 /opt/harbor/data,我们需要在运行prepare后,需要修改/opt/harbor/docker-compose.yml文件中,并提前创建一些数据卷目录:

mkdir -p /opt/harbor/data/registry

mkdir -p /opt/harbor/data/log

mkdir -p /opt/harbor/data/database

修改docker-compose.yml文件内容如下:

执行install.sh脚本安装harbor并同时启动harbor服务

./ install.sh

此时会启动6个docker容器,可以用docker-compose ps查看harbor组件的运行时的状态。

5、 客户端访问harbor仓库

需要访问Harbor仓库的客户端,需要复制刚生成的证书:将harbor主机上的/opt/cert/ca.crt文件,复制到客户端宿主机上的:/etc/docker/certs.d/192.168.56.104/ca.crt

5、 Harbor权限管理和跨仓库镜像远程复制

1. 项目权限管理

角色权限分类:

项目管理员:项目管理、用户管理、镜像管理和复制策略等权限

开发人员:只能针对自己项目镜像具有pull/push等权限

访客:只能针对自己项目镜像具有pull权限

1)给testrpo项目分配一个漂亮的小鸽子xinju,角色权限为开发人员

2)通过xinju用户登录我们可以正常看到,testrpo项目,仓库中有2个镜像,权限为开发人员,只要上传和下载权限。无删除镜像权限。

3)通过API给项目添加用户权限(5代表项目testrpo)

2. 跨仓库镜像远程复制

目前Harbor支持跨数据仓库镜像远程复制功能,从某种程度上满足了镜像仓库HA高可用。但复制策略是以"项目"为中心, 通过管理员对具体项目的Harbor源端配置"复制策略",标明需要复制的项目以及镜像到harbor目标仓库。并对它的地址和连接时使用的用户名密码进行设置。当复制策略被激活时,Harbor源项目下的所有镜像,都会被复制到harbor目标仓库;此外,当Harbor源项目下的镜像被添加或删除(push或delete), 只要策略还在激活状态,镜像的变化都会同步到harbor目标仓库上去, 如下图所示:

以下验证一下如何完成跨仓库远程镜像复制功能

Harbor源仓库主机:192.168.56.105 (主节点)

Harbor目标仓库主机:192.168.56.106 (从节点)

将主节点的其中一个testrpo项目中的镜像文件同步到从节点中

1)登录Harbor源仓库web ui https:// 192.168.56.105,选择testrpo项目来做镜像同步

2)填写需要同步的目标仓库地址

3)开启复制策略,看到下面的复制任务已完成

4)登录Harbor目标仓(https://192.168.56.106)发现目标仓库中已经同步过来了testrpo目标中有两个镜像文件。

5)同时也可以看到日志中镜像复制过程中的所有操作

6、 总结

1. 提供可视化的Web界面方便云计算机运维工程师来管理docker镜像,友好的操作界面使用简单又方便。

2. 提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制,Harbor的安全机制是做的比较好。

3. 支持跨数据仓库镜像远程同步功能,从某种程度上可以满足HA的需求。

4. 提供详细的RESTful API接口方便第三方开发集成。

5. Harbor是VMware中国研发的团队负责开发社区文档资料比较丰富。

6. Harbor系统平台不支持镜像文件自动清理,在平台上删除一些镜像却只是删除了镜像的软链接,需要人工用命令去后台清理镜像。

7. 后续会考虑如何去搭建使用Harbor高可用集群。

7、 参考资料

https://my.oschina.net/vmwareharbor/blog/650964

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。