如何快速备份与还原 Harbor

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

f05cd65adf7cafd76561090bae813b2d.jpeg

数据是企业的生命,如何对数据进行备份就变得尤为重要了。

同样,企业的Harbor私有镜像仓库服务中,备份工作也是运维工程师必须会的一项技能了。

前言

  本篇文章将从以下几个方面详细阐述Harbor备份还原中的相关问题:

  • 需要备份哪些数据?

  • 备份周期应该是多长时间?

  • 数据丢失后,如何快速恢复?

值得注意的是,在Harbor的版本升级操作中,也需要先进行备份后再进行升级,防止升级失败后可以回滚到之前的状态!

环境说明

  本文以Harbor安装在/app/harbor为例,数据目录、用户名、密码均以默认的方式,请根据自己实际的环境进行修改。

注意事项

  在备份时请保持数据的权限不会改变,否则在恢复数据后无法启动Harbor,而且日志里同时会有文件权限相关的错误信息,这极有可能就是备份数据的文件权限不正确导致的。

Harbor中的数据

Harbor 的数据可分为几类:静态数据、动态数据;

1.1 静态数据

  静态数据就是Harbor中不会变化的数据,该类数据仅需要全量备份一次即可

包括以下几部分:

  • 1)在Harbor 安装期间通过配置文件生成的数据,主要是Harbor组件所依赖的配置文件和环境变量。这些数据通常在Harbor安装目录的common目录下,在Harbor各组件启动时会被挂载到对应的容器中。虽然临时数据对服务的顺利运行至关重要,但是安装程序每次都会读取 Harbor 配置文件重新生成一份临时数据,所以我们仅需备份配置文件即可,不必将整个 common 目录全部备份。

  • 2)证书文件,如果是使用https的Harbor服务,将制作的证书文件存放在安装目录的ssl下(手动创建),建议阅读:《cfssl工具为Harbor颁发https证书》

  • 3)在Harbor的日常维护中,获取镜像清单的脚本等也可进行备份。为方便对数据进行管理,该类数据属于“静态”数据,并不会再变化,建议放在Harbor的安装目录中(本处harbor安装在/app/harbor下)。

  简单点就是:把Harbor的安装目录全量备份一次就可以了;

1.2 动态数据

  所谓动态数据,就是在Harbor运行过程中生成的各种数据,包括数据库、缓存、镜像文件等;

  该类数据需要根据实际情况来进行周期性的备份,例如一周备份一次,并保留最近4个备份文件。

  存放在数据目录配置项下(即配置文件中 data_volume 参数所配置的值),这些数据主要包括 Harbor 的数据库数据、Artifacts 数据、Redis 数据、Chart 数据,以及 Harbor 各个组件所依赖的运行时数据。

0ac707ccd2083a4a3f4134c00461ab81.png
$ grep  ^data_volume   /app/harbor/harbor.yml
data_volume: /data
$ ls /data/
|-ca_download:存放用户访问Harbor时所需的CA。
|-cert:Harbor启动HTTPS服务时所需的证书和密钥。
|-chart_storage:存放Helm v2版本的Chart数据。
|-database:存放数据库的目录,Harbor、Clair和Notary数据库的数据都在此目录下。
|-job_logs:存放JobService的日志信息。
|-redis:存放Redis数据。
|-registry:存放OCI Artifacts数据(对于大部分用户来说是镜像数据)。
|-secret:存放Harbor内部组件通信所需的加密信息。
|-trivy-adapter:存放Trivy运行时相关的数据。

如果你的Harbor是《基于离线安装的高可用Harbor集群》,则需要单独对PostgreSQLRedis两种数据库进行单独的备份。

三、备份方式

  建议将Harbor的数据备份到另外一台备份主机上,对于“静态数据”使用scp全量备份一次即可;而对于“动态类数据”可使用rsync工具结合计划任务来进行周期性的备份。

备份操作

4.1 创建备份目录

  在备份主机(192.168.2.22)上创建备份目录来存放备份文件:

$ mkdir -p /data/harbor_backup_v1

4.2 备份Harbor安装目录

  在Harbor服务主机上将Harbor的安装目录中的数据全量备份一次到备份主机上即可。

$ scp /app/harbor 192.168.2.22:/data/harbor_backup_v1/harbor

4.3 备份“动态数据”

  使用rsync工具备份Harbor中/data/下的所有数据(配置文件中data_volume参数指定的目录)

$ yum  install -y  rsync  #安装rsync
$ rsync --daemon 
$ echo "/usr/bin/rsync --daemon">>/etc/rc.local
$ ps -aux |grep rsync      #查看rsyncd进程
$ rsync --delete -av  --partial  /data/  192.168.2.22:/data/harbor_backup_v1/

Harbor的恢复(还原)

  使用之前备份的文件恢复到之前版本的Harbor。我们都明白,线上服务总会有突发事件发生,面对火灾、地震、误删数据或者新版本有严重Bug等的场形,我们都会有恢复到之前的稳定运行版本的需求。下面就介绍如何恢复Harbor。

5.1 停止Harbor

如果Harbor还在运行,则需要先停止Harbor:

$ cd  /app/harbor
$ docker-compose down

5.2 删除当前的Harbor目录:

$ cd /app/
$ rm -rf harbor

5.3 恢复之前版本的Harbor目录:

将原创备份主机上的安装目录备份文件拷贝过来:

scp 192.168.2.22:/data/harbor_backup_v1/harbor /app/harbor

如果备份文件是在本机:

$ mv  /my_backup_dir/harbor  harbor

5.4 恢复data目录

若data目录存在,则需要先删除它(或修改目录名):

$ rm -rf  /data
$ scp  192.168.2.22:/data/harbor_backup_v1/data  /data

5.5 重启Harbor

$ cd harbor
$ ./install.sh
$ docker-compose ps

然后查看各个组件的服务状态是否正常!

本文转载自:「Harbor进阶实战」,原文:https://url.hi-linux.com/RjzUF,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

3c72a7ff3f7b53df5ae240d11eac9553.gif

最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

00c3a3fbae89cbab5fa8bf1ccedfe2da.png

你可能还喜欢

点击下方图片即可阅读

64cdf68f41e9907ae8fea8a3c2247600.png

Docker 已全面拥抱 Containerd,离用上 Kubernetes 1.24 还会远吗?

d8b6750bc3d8b1df6bd5effe85e5f3a6.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

dc17f3e2526042e178ea76098840bd37.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值