架构图
注意:此架构有缺陷不适合用于生产,只作为学习
1.安装docker
因为安装harbor需要用到docker,所以请先安装docker
这一步内容请看docker安装
2.安装harbor
- 下载harbor包
wget https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz
如果网速慢,本文提供一个免费下载的包harbor-v2.5.6
- 解压缩进行配置
tar xf harbor-offline-installer-v2.5.6.tgz cd harbor cp harbor.yml.tmpl harbor.yml vim harbor.yml # 配置文件内容,IP192.168.10.3改成对应IP hostname: 192.168.10.2 harbor_admin_password: Harbor12345 # https相关内容注释 #https: # https port for harbor, default is 443 # port: 443 # The path of cert and key files for nginx # certificate: /your/certificate/path # private_key: /your/private/key/path
- 进行安装
./install.sh
- 登录验证
192.168.10.2
192.168.10.3
3.配置harbor复制规则
harbor-01配置
- 创建仓库
点击系统管理——》仓库管理——》新建目标——》填写信息——》测试连接——》成功点确定
- 创建复制规则
点击系统管理——》复制管理——》新建规则——》填写信息——》保存
harbor-02配置
在02上进行类似的配置
- 创建仓库
- 创建复制规则
4.部署Haproxy做代理
- 安装haproxy服务
yum -y install haproxy
- 准备真实有效的证书(本人使用阿里云免费证书)
[root@localhost ~]# unzip 9486797_harbor.yyang.top_nginx.zip Archive: 9486797_harbor.yyang.top_nginx.zip Aliyun Certificate Download inflating: 9486797_harbor.yyang.top.pem inflating: 9486797_harbor.yyang.top.key [root@localhost ~]# mkdir /ssl [root@localhost ~]# cat 9486797_harbor.yyang.top.pem >/ssl/harbor.pem [root@localhost ~]# cat 9486797_harbor.yyang.top.key >>/ssl/harbor.pem
配置haproxy,添加以下内容
vim /etc/haproxy/haproxy.cfg
frontend harbor bind *:80 bind *:443 ssl crt /ssl/harbor.pem mode http use_backend harbor_cluster redirect scheme https if !{ ssl_fc } http-request set-header X-Forwarded-Proto http if !{ ssl_fc } http-request set-header X-Forwarded-Proto https if { ssl_fc } backend harbor_cluster balance source server harbor-01 192.168.10.2:80 check port 80 server harbor-02 192.168.10.3:80 check port 80
- 启动服务
systemctl start haproxy.service systemctl enable haproxy.service
- harbor节点做本地解析(两个)因为并没有真的域名
echo "192.168.10.4 harbor.yyang.top" >>/etc/hosts
- 准备一个nginx上传至harbor测试
docker pull busybox docker images busybox latest beae173ccac6 14 months ago 1.24MB docker tag beae173ccac6 harbor.yyang.top/test/busybox docker push harbor.yyang.top/test/busybox:latest The push refers to repository [harbor.yyang.top/test/busybox] 01fd6df81c8e: Pushed latest: digest: sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee size: 527
- 登录网页查看是否同步
此时两个harbor上都可以看到busybox镜像
注意:次架构不能同步用户级别镜像。只能使用admin。