首页 > 其他 > 详细

Harbor双主复制

时间:2021-07-06 18:13:38      阅读:37      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

Docker企业级仓库Harbor,根据该文章搭建两台服务器用作Harbor。

系统环境

HOSTNAMEIPOSHard
harbor1 192.168.1.12 Centos 7.6 4c4g
harbor2 192.168.1.13 Centos 7.6 4c4g

完成后在 harbor1 域名中添加 harbor2 的DNS记录,如果不添加的话,无法解析域名将不会复制成功

同样参考部署 Harbor 中最后测试部分,在 harbor2 上创建项目 goharbor。接下来要做双主复制同步镜像

因为使用了域名,且是 https 访问,所以两台服务器必须要互换证书

在 harbor1 创建 harbor2 的证书目录

mkdir /etc/docker/certs.d/harbor2.yanjiang.chai

在 harbor2 创建 harbor1 的证书目录

mkdir /etc/docker/certs.d/harbor1.yanjiang.chai
cd /usr/local/harbor/pki
scp harbor1.yanjiang.chai.cert harbor2.yanjiang.chai:/etc/docker/certs.d/harbor1.yanjiang.chai 
scp harbor1.yanjiang.chai.key harbor2.yanjiang.chai:/etc/docker/certs.d/harbor1.yanjiang.chai
scp ca.crt harbor2.yanjiang.chai:/etc/docker/certs.d/harbor1.yanjiang.chai
scp harbor1.yanjiang.chai.crt harbor2.yanjiang.chai:/etc/pki/ca-trust/source/anchors

两台全部重启 docker

update-ca-trust
systemctl restart docker

因为docker的重启,harbor可能会宕掉

cd /usr/local/harbor
./install.sh

harbor1

登录web界面:https://harbor1.yanjiang.chai

进入仓库管理,在 harbor1 上添加 harbor2 的信息

技术分享图片

填写 harbor2 的信息

目标名:自定义
描述: 自定义
目标URL:如果是域名的形式,必须在有域名服务可以解析域名,hosts是没用的,除非是ip的形式访问
访问ID:harbor2 的登录用户名,或者在 harbor2 创建的账户
访问密码:账户密码
验证远程证书:取消复选框(因为证书是自签证书,所以不需要验证)

最后测试连接成功后,再确定

若测试失败,请查看 /var/log/harbor/core.log

技术分享图片

添加成功如下

技术分享图片

创建复制规则

技术分享图片

过滤器的填写参考官网的 创建复制规则

技术分享图片

创建成功

技术分享图片

harbor2

harbor2 做和 harbor1 同样的操作

同步测试

现在由于两个harbor中都有 goharbor 项目仓库,就将启动harbor的镜像选择一台全部上传。

这里以 harbor2 为例上传

$ docker login -u admin -p Harbor12345 https://harbor2.yanjiang.chai
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

这里就用脚本上传了

#!/bin/bash

HARBOR_IMAGE=$(docker image ls | grep -v TAG | awk  ‘{print $1":"$2}‘)
HARBOR_REGISTRY="harbor2.yanjiang.chai"

for SOURCE_IMG in $HARBOR_IMAGE
do
  CHANAGE_TAG_IMG="${HARBOR_REGISTRY}/${SOURCE_IMG}"
  docker tag $SOURCE_IMG $CHANAGE_TAG_IMG
  docker push $CHANAGE_TAG_IMG > /dev/null
  if [ $? = 0 ]; then
    echo -e "\033[33m${HARBOR_REGISTRY}/${SOURCE_IMG}\033[0m pushed \033[32mSuccessful\033[0m"
    docker image rm $CHANAGE_TAG_IMG
  else
    echo -e "\033[33m${HARBOR_REGISTRY}/${SOURCE_IMG}\033[0m pushed \033[31mFailed\033[0m"
  fi
done

现在在 harbor1 和 harbor2 的web界面都可以看到 goharbor 项目中已存在镜像。

Harbor双主复制

原文:https://www.cnblogs.com/tingf/p/14977596.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!