Harbor仓库的搭建

Harbor仓库的搭建,第1张

Harbor仓库的基本搭建方法

https的harbor登录方式

由于docker在与harbor连接时默认使用的是https连接方式,如果是http协议的harbor,docker与harbor连接时就需要修改配置文件了,如果有多个harbor仓库或者多台装有docker的主机,那修改起来就比较麻烦了。此外,每次修改之后还需要重启docker,与此同时,每次重启docker也相当于必须把所有容器都重启了一遍,着实不太规范,况且在生产环境中多是使用https提高安全性。因此为了测试使用,在这里使用自签名证书

1、创建CA证书

首先创建个目录存放需要存放的CA证书。

其中:(req:申请证书签署请求;-newkey 新密钥 ;-x509:可以用来显示证书的内容,转换其格式,给CSR签名等X.509证书的管理工作,这里用来自签名。)

之后出现的一连串要填信息的提示,可填可不填,如果不填就一路回车知道出现Common Name 输入IP或域名。

Common Name (eg, your name or your server's hostname) []:192.168.3.24

2、生成证书声明请求

当出现Common Name 时输入IP或域名

Common Name (eg, your name or your server's hostname) []:192.168.3.24

3、生成证书

4、配置harbor.yml文件(新版harbor从cfg文件升级到了yml文件)

hostname: 192.168.3.24 /域名或ip

https: /这里使用https协议

port: 443

certificate: /root/ca/192.168.3.24.crt/crt位置

private_key: /root/ca/192.168.3.24.key/key的位置

5、配置启动harbor

如果之前没安装过harbor,也可以在harbor目录里执行 ./install.sh。

6、拷贝CA证书

在docker login harbor仓库前,需要在每台docker客户端中添加信任,将生成的ca.crt拷贝到宿主机中对应文件夹当中。

7、测试

输入用户名密码,查看是否可以连接成功,正常情况下都能成功,如果不行就重启下docker。

如果能在任意一台加了证书信任的机器上docker pull镜像成功的话,就说明具有https协议的harbor配置成功了。

首先,得准备两台及以上的节点搭建好harbor仓库,我在这里使用的是 192.168.3.23与192.168.3.24两台主机作为harbor服务节点,harbor版本为最新的1.9。

![6B(5{PC[93KBZSH MRSY6BP.png

![6B(5{PC[93KBZSH MRSY6BP.png

以public项目为例,现在要将192.168.3.23的harbor里的镜像同步到192.168.3.24的harbor中去。

192.168.3.23/public

192.168.3.24/public

![Q4CK2O3 )RZQT2E7BWA9L}9.png

点击仓库管理,选择新建项目,在项目内可选择目标的提供者,目标URL(即你需要连接的仓库地址),在输入账户密码后如果能测试连接成功,则说明两个harbor可以进行对接。

![TVSAJ}O1SQ5@7JY70O1H1 B.png](https://upload-images.jianshu.io/upload_images/20887752-de230bcd10021d35.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![7WI(]Z N9J3`(R6 CIT6{Q5.png

点击同步管理,选择新建规则,这里有两种同步模式,push-based 以及pull-based,在这里选择的是push-based,将对"harbor23"中已上传的镜像在"harbor24"中进行同步复制。可以通过名称、tag、标签对需要同步的

镜像资源进行筛选过滤,选择在上一步添加并测试连接成功的仓库(即"harbor24"),Namespace可选择将镜像同步到目的仓库的某个项目(如果不填,则同步到名字相同的项目中)。触发模式有手动、定时、事件驱动三种。

![]DDOMQ}%%$TEB(4BZFM36F7.png]( https://upload-images.jianshu.io/upload_images/20887752-b4b56633fe1d16e9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )

保存之后,选择同步,稍等一会就看到同步成功了。

现在到192.168.3.24的harbor中去查看,发现镜像已经同步过来了。

![O@MSW5NZ24{1X X2MX$F_RF.png

![O@MSW5NZ24{1X X2MX$F_RF.png

Harbor一个用于存储Docker镜像的企业级Registry服务。

Harbor核心组件解释

* Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。

* db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。

* UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。

* jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。

* Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。

* Registry:镜像仓库,负责存储镜像文件。

* Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。

Harbor和Registry的比较

Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。

只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。

当有用户对镜像的上传下载 *** 作集中在某服务器,需要对相应的访问压力作分解。

企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。

kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制。

部署

1、安装docker

安装docker-ce

yum-utils 提供yum-config-manager工具,devicemapper存储需要device-mapper-persistent-data和lvm2

添加yum源仓库

官方仓库

阿里仓库

安装docker

扩展:安装指定版本的docker

启动docker,设置开机启动docker

官网安装:https://docs.docker.com/install/linux/docker-ce/centos/

配置docker中国镜像加速,配置后重启docker

详细说明:https://www.docker-cn.com/registry-mirror

2、安装docker-compose

查看版本

3、安装harbor

从github下载harbor:https://github.com/goharbor/harbor/releases

4、管理

停止,需要进入Harbor目录/usr/local/harbor

修改配置

先停止,然后更新harbor.cfg文件,然后运行prepare,以更新配置

5、登录,默认用户名admin ,密码 Harbor12345,新建一个tomcat7仓库

6、配置docker允许使用http方式访问私仓,不然会在主机登录会出错

7、创建一个镜像并推送到tomcat7仓库

创建dockerfile,这里不把jdk环境打包进镜像,在运行容器时挂载本地jdk环境,以减小镜像大小和提升速度

####格式:私有仓库IP/项目名称/镜像名称:版本号####

push成功,去界面看下

从镜像启动容器,镜像是否正常使用,注意要使用-v参数,挂载本地jdk

我们访问下IP:32770看下

官网安装:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11760944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存