Harbor仓库的搭建

Harbor仓库的基本搭建方法

  • https的harbor登录方式
    • 1、创建CA证书
    • 2、生成证书声明请求
    • 3、生成证书
    • 4、配置harbor.yml文件(新版harbor从cfg文件升级到了yml文件)
    • 5、配置启动harbor
    • 6、拷贝CA证书
    • 7、测试
  • Harbor仓库的同步管理
    • 1、创建项目
    • 2、仓库管理
    • 3、同步管理

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

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

mkdir -p /root/ca

cd /root/ca

openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt /证书创建命令

其中:(req:申请证书签署请求;-newkey 新密钥 ;-x509:可以用来显示证书的内容,转换其格式,给CSR签名等X.509证书的管理工作,这里用来自签名。)
之后出现的一连串要填信息的提示,可填可不填,如果不填就一路回车知道出现Common Name 输入IP或域名。

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

2、生成证书声明请求

openssl req -newkey rsa:4096 -nodes -sha256 -keyout 192.168.3.24.key -out 192.168.3.24.csr

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

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

3、生成证书

echo subjectAltName = IP:192.168.3.24 > extfile.cnf

openssl x509 -req -days 365 -in 192.168.3.24.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out 192.168.3.24.crt

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

The IP address or hostname to access admin UI and registry service.

DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.

hostname: 192.168.3.24 /域名或ip

http related config

http:

port for http, default is 80. If https enabled, this port will redirect to https port

port: 80

https related config

https: /这里使用https协议

https port for harbor, default is 443

port: 443

The path of cert and key files for nginx

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

5、配置启动harbor

docker-compose down

./prepare

docker-compose up –d

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

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

mkdir -p /etc/docker/certs.d/192.168.3.24

cp /root/ca/ca.crt /etc/docker/certs.d/192.168.3.24/ca.crt /拷贝到本机上

sudo scp -r [email protected]:/root/ca/ca.crt /etc/docker/certs.d/192.168.3.24/ca.crt /拷贝到别的机器上

7、测试

docker login 192.168.3.24

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

docker pull 192.168.3.24/public/nginx:v1

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

Harbor仓库的同步管理

1、创建项目

首先,得准备两台及以上的节点搭建好harbor仓库,我在这里使用的是 192.168.3.23与192.168.3.24两台主机作为harbor服务节点,harbor版本为最新的1.9。
![6B(5{PC[93KBZSHMRSY6BP.png

![6B(5{PC[93KBZSHMRSY6BP.png

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

192.168.3.23/public


Y_@4$EN9TCEIN3UVNG3(VN5.png

192.168.3.24/public
![Q4CK2O3)RZQT2E7BWA9L}9.png

2、仓库管理

点击仓库管理,选择新建项目,在项目内可选择目标的提供者,目标URL(即你需要连接的仓库地址),在输入账户密码后如果能测试连接成功,则说明两个harbor可以进行对接。
![TVSAJ}O1SQ5@7JY70O1H1B.png](https://upload-images.jianshu.io/upload_images/20887752-de230bcd10021d35.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![7WI(]ZN9J3`(R6CIT6{Q5.png

3、同步管理

点击同步管理,选择新建规则,这里有两种同步模式,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)

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


ANYF0FL{UBSXX0UU7NE`I66.png](https://upload-images.jianshu.io/upload_images/20887752-bb06ddd827a81488.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![T83JTXAA0ZINQ%_A``BI`_S.png

现在到192.168.3.24的harbor中去查看,发现镜像已经同步过来了。
![O@MSW5NZ24{1XX2MX$F_RF.png

![O@MSW5NZ24{1XX2MX$F_RF.png

你可能感兴趣的:(Harbor仓库的搭建)