环境说明:
node1 10.10.5.135 仓库 1
node2 10.10.5.136 仓库 2
node3 10.10.5.137 客户端
实验内容: Harbor 可以在两台主机之间相互同步仓库,客户端在任意主机上传镜像可以同步到所有Harbor仓库。
Harbor 安装:
两台机器都要安装好harbor
# 1 ) 安装docker :
yum install docker-ce -y
systemctl restart docker
systemctl enable docker
# 2 ) 安装 docker-compose(1.7.1+):
yum install epel-release -y
yum install docker-compose -y
# 3 ) 安装Harbor-1.7.5:
tar -zxvf harbor-offline-installer-v1.7.5.tgz && cd harbor
vim harbor.cfg
hostname = 10.10.5.135 # 写对应的主机名
harbor_admin_password = 123456 # 默认密码:Harbor12345
./install.sh
安装过程省略........
# 4 ) 登录页面查看:
http://10.10.5.135 | admin | 123456
# 5 ) docker log 会提示不能链接,没有SSL证书的情况下,需要把所有的harbor服务器地址都写进配置文件:
vim /etc/systemd/system/multi-user.target.wants/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 10.10.5.136 --insecure-registry 10.10.5.135
systemctl daemon-reload
systemctl restart docker
Harbor 复制:
1 )node1 (10.10.5.135) 上配置Harbor 仓库管理 和 复制管理:
# 仓库管理:
仓库管理 -> 新建目标 -> 目标名: baseimages -> 目标URL: http://10.10.5.136 -> 用户名:admin -> 密码:123456 -> 不选"验证远程证书" -> 测试连接 -> 确定
# 复制管理:
复制管库-> 新建规则 -> 名称:baseimages -> 源项目: baseimages -> 源镜像过滤器 -> 目标(下拉选择创建好的) -> 触发模式 即刻(可选:手动|即刻|定时) -> 保存
2 )node2 (10.10.5.136) 上配置Harbor 仓库管理 和 复制管理:
# 仓库管理:
仓库管理 -> 新建目标 -> 目标名: baseimages -> 目标URL: http://10.10.5.135 -> 用户名:admin -> 密码:123456 -> 不选"验证远程证书" -> 测试连接 -> 确定
# 复制管理:
复制管库-> 新建规则 -> 名称:aseimages -> 源项目: baseimages -> 源镜像过滤器 -> 目标(下拉选择创建好的) -> 触发模式 即刻(可选:手动|即刻|定时) ->保存
3 ) 测试同步:
这个时候去看日志里面 就会产生docker push 和 docker pull 的日志了. 下面有图
4 ) 测试客户端上传镜像到任意主机能同步到其他主机:
4.1 ) 登陆10.10.5.135,并上传镜像:
docker login 10.10.5.135 | admin | 123456
docker tag tomcat-app1:v1 10.10.5.135/baseimages/tomcat-app1:v1
docker push 10.10.5.135/baseimages/tomcat-app1:v1
4.2 )登陆10.10.5.136,并上传镜像:
docker login 10.10.5.136 | admin | 123456
docker tag tomcat-app2:v1 10.10.5.136/baseimages/tomcat-app2:v1
docker push 10.10.5.136/baseimages/tomcat-app2:v2
4.3 ) 登录任意Harbor 并上传镜像:
docker login 10.10.5.135 | admin | 123456
docker tag tomcat-app2:v1 10.10.5.135/baseimages/tomcat-app2:v1
docker push 10.10.5.135/baseimages/tomcat-app2:v2
*** 注意:
1 harbor 采用http协议传输, 按项目仓库来同步, 规则里源镜像过滤器能过滤(repository|tag|label).
2 创建规则的时候一定注意写的是同步到的目的主机URL和账号密码.
3 同步一定要看日志, 有时候发生了无法同步的问题,看看两边同步用的账号是否有一遍无法连通.
1 仓库管理设置图
2 复制管理设置图:
3 同步日志:
4 验证结果: