Harbor-1.7.5版本安装,升级至1.8.6,回滚到1.7.5
安装
帮客户验证,所以使用跟客户相同的版本:v1.7.5
安装包地址:https://github.com/goharbor/harbor/releases/tag/v1.7.5
- 下载安装包,并解压。如果是离线环境,可以下载 offline 安装包
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
- 编辑harbor.cfg配置文件,修改以下配置
cd /root/harbor/1.7.5/harborvi 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.keysecretkey_path = /dataharbor_admin_password = Harbor12345
- 生成自签名证书,并复制到/data/cert目录下
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 4096openssl 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.csrcat > 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
EOFopenssl 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
- 执行./install.sh脚本自动安装harbor
cd /root/harbor/1.7.5/harbor
./install.sh
这里需要用到docker-compose,如果没安装会报错,安装步骤如下:
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
- 安装完成后,浏览器访问 https://harbor.chin.com
用户名密码:admin/Harbor12345
- docker使用harbor镜像库
# cat /etc/docker/daemon.json
{
"insecure-registries":["harbor.chin.com"]
}
systemctl restart dockerdocker 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
- 下载安装包,并解压
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
- 停止harbor
cd /root/harbor/1.7.5/harbor
docker-compose down
- 备份database
cd /data
cp -rf database/ database-1.7.5
- 迁移harbor配置文件
原先的harbor配置文件是harbor.cfg,新版本使用harbor.yml
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配置文件,可以看到相关配置已经自动修改
- 升级harbor
cd /root/harbor/1.8.6/harbor
./install.sh
至此升级成功
回滚
版本回滚操作需要升级时备份的数据库文件,如果之前升级没有备份,则回滚失败
- 停止harbor
cd /root/harbor/1.8.6/harbor
docker-compose down
- 使用升级时备份的数据库文件
cd /data
mv database database-bak
mv database-1.7.5 database
- 回滚harbor版本
cd /root/harbor/1.7.5/harbor
./install.sh
至此回滚成功