Harbor-1.7.5版本安装,升级至1.8.6,回滚到1.7.5

安装

帮客户验证,所以使用跟客户相同的版本:v1.7.5

安装包地址:https://github.com/goharbor/harbor/releases/tag/v1.7.5

  1. 下载安装包,并解压。如果是离线环境,可以下载 offline 安装包
1
2
3
4
mkdir -p /root/harbor/1.7.5
cd /root/harbor/1.7.5
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz
tar -zxvf harbor-offline-installer-v1.7.5.tgz
  1. 编辑harbor.cfg配置文件,修改以下配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd /root/harbor/1.7.5/harbor

vi harbor.cfg
## 1.修改访问域名
hostname = harbor.chin.com

## 2. 使用https协议
ui_url_protocol = https

## 其他常用的配置,我这里没有修改
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key

secretkey_path = /data

harbor_admin_password = Harbor12345
  1. 生成自签名证书,并复制到/data/cert目录下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
mkdir /root/harbor/1.7.5/harbor/ssl
cd /root/harbor/1.7.5/harbor/ssl
## 生成CA秘钥和CA证书
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=GD/L=SZ/O=chin/OU=chin/CN=chin.ca" -key ca.key -out ca.crt

## 这里如果报Can't load /root/.rnd into RNG这个错,执行这个生成rnd文件
# openssl rand -writerand /root/.rnd

## 生成服务器证书
openssl genrsa -out harbor.chin.com.key 4096

openssl req -sha512 -new -subj "/C=CN/ST=GD/L=SZ/O=chin/OU=chin/CN=harbor.chin.com" -key harbor.chin.com.key -out harbor.chin.com.csr

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
EOF

openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in harbor.chin.com.csr -out harbor.chin.com.crt

##复制证书到/data/cert目录下
cp harbor.chin.com.key /data/cert/server.key
cp harbor.chin.com.crt /data/cert/server.crt
  1. 执行./install.sh脚本自动安装harbor
1
2
cd /root/harbor/1.7.5/harbor
./install.sh

这里需要用到docker-compose,如果没安装会报错,安装步骤如下:

1
2
3
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

安装完成后,重新执行一下./install.sh

  1. 安装完成后,浏览器访问 https://harbor.chin.com

用户名密码:admin/Harbor12345

  1. docker使用harbor镜像库
1
2
3
4
5
6
7
8
9
# cat /etc/docker/daemon.json 
{
"insecure-registries":["harbor.chin.com"]
}
systemctl restart docker

docker pull nginx:1.17
docker tag nginx:1.17 harbor.chin.com/library/nginx:1.17
docker push harbor.chin.com/library/nginx:1.17

升级

根据客户环境,升级至1.8.6版本

地址:https://github.com/goharbor/harbor/releases/tag/v1.8.6

  1. 下载安装包,并解压
1
2
3
4
mkdir -p /root/harbor/1.8.6
cd /root/harbor/1.8.6
wget https://github.com/goharbor/harbor/releases/download/v1.8.6/harbor-offline-installer-v1.8.6.tgz
tar -zxvf harbor-offline-installer-v1.8.6.tgz
  1. 停止harbor
1
2
cd /root/harbor/1.7.5/harbor
docker-compose down
  1. 备份database
1
2
cd /data
cp -rf database/ database-1.7.5
  1. 迁移harbor配置文件

原先的harbor配置文件是harbor.cfg,新版本使用harbor.yml

1
docker run -it --rm -v /root/harbor/1.7.5/harbor/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /root/harbor/1.8.6/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml goharbor/harbor-migrator:v1.8.6 --cfg up

迁移完成后,查看harbor.yml配置文件,可以看到相关配置已经自动修改

  1. 升级harbor
1
2
cd /root/harbor/1.8.6/harbor
./install.sh

至此升级成功

回滚

版本回滚操作需要升级时备份的数据库文件,如果之前升级没有备份,则回滚失败

  1. 停止harbor
1
2
cd /root/harbor/1.8.6/harbor
docker-compose down
  1. 使用升级时备份的数据库文件
1
2
3
cd /data
mv database database-bak
mv database-1.7.5 database
  1. 回滚harbor版本
1
2
cd /root/harbor/1.7.5/harbor
./install.sh

至此回滚成功