Harbor主从复制
1、harbor安装
1.1、docker安装
#1、安装docker
yum -y install docker-ce
#2、启动docker
systemctl enable docker && systemctl start docker
1.2、docker-compose安装
#1、下载docker-compose
wget "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose
#2、赋予执行权限
chmod +x /usr/local/bin/docker-compose
1.3、harbor安装
#1、在opt目录下载安装
cd /opt
#2、下载harbor
wget https://github.91chi.fun/https://github.com//goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz
#3、解压
tar -zxvf harbor-offline-installer-v2.5.0.tgz
2、设置HTTPS
2.1、生成证书颁发机构
#1、生成 CA 证书私钥
openssl genrsa -out ca.key 4096
#2、生成 CA 证书 yourdomain.com替换成你的域名地址
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.2.50" \
-key ca.key \
-out ca.crt
2.2、生成服务器证书
#1、生成私钥 yourdomain.com替换成你的域名地址
openssl genrsa -out 192.168.2.50.key 4096
#2、生成证书签名请求 (CSR)
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.2.50" \
-key 192.168.2.50.key \
-out 192.168.2.50.csr
#3、生成 x509 v3 扩展名文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=192.168.2.50
DNS.2=yourdomain
DNS.3=hostname
EOF
#4、使用该文件为 Harbor 主机生成证书。
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in 192.168.2.50.csr \
-out 192.168.2.50.crt
2.3、向 Harbor 和 Docker 提供证书
#1、将服务器证书和密钥复制到 Harbor 主机上的证书文件夹中
cp 192.168.2.50.crt /data/cert/
cp 192.168.2.50.key /data/cert/
#2、crt转换为 cert Docker 使用
openssl x509 -inform PEM -in 192.168.2.50.crt -out 192.168.2.50.cert
#3、将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。必须首先创建相应的文件夹。
cp 192.168.2.50.cert /etc/docker/certs.d/192.168.2.50/
cp 192.168.2.50.key /etc/docker/certs.d/192.168.2.50/
cp ca.crt /etc/docker/certs.d/192.168.2.50/
#4、修改harbor配置文件
cd /opt/harbor/
vi harbor.yml
# 4.1修改域名并指定证书路径
hostname:192.168.2.50
certificate: /data/cert/192.168.2.50.crt
private_key: /data/cert/192.168.2.50.key
#5、重新启动 Docker 引擎。
systemctl restart docker
3、启动Harbor
# 1、运行脚本以启用harbor
./prepare
./install.sh
4、登录harbor并设置主从复制
4.1、登录harbor
- 访问http://192.168.2.50
- 默认账号密码为admin\Harbor12345
4.2、配置harbor从库
-
系统管理>仓库管理>新建目标
- 提供者:Harbor
- 目标名:harbor-slave(这里随便起一个容易辨识的名称)
- 目标url: https://192.168.2.51(harbor从库地址)
- 访问id:admin(harbor从库 账号)
- 访问密码:Harbor12345(harbor从库 密码)
- 验证远程证书:不要勾选
-
系统管理>复制管理>新建规则
- 名称:sync-images-51(这里随便起一个容易辨识的名称)
- 复制模式: push-based (push-based:推送镜像到指定仓库 pull-based:拉取指定仓库镜像)
- 源资源过滤器:这里可以不修改
- 目标仓库: 选择刚才新建的目标
- 目标:这里可以不修改
- 触发模式:事件驱动(每次主仓库有push时会自动push到从库)
- 删除本地资源时同时也删除远程的资源:这个不勾选
- 带宽:-1(-1代表不限制)
- 覆盖:勾选
-
验证主从复制
- 3.1、推送镜像
#1、在本机上登录主库
docker login 192.168.2.50 -uadmin
#2、镜像标签
docker tag base-images/pytorch:v1 192.168.2.50/base-images/pytorch:v1
#3、推送镜像
docker push 192.168.2.50/base-images/pytorch:v1
-
3.2、系统管理>复制管理>选中规则可以看到对应复制任务
-
3.3、登录从库也会看到对应推送的镜像