返回顶部

harbor备份还原

harbor备份还原

致辞中秋佳节来临之际,先对本地虚机的harbor镜像仓库进行备份还原操作,保证k8s的“命根子”

Harbor 的数据可分为几类:静态数据、动态数据, 在备份时请保持数据的权限不会改变,否则在恢复数据后无法启动Harbor,而且日志里同时会有文件权限相关的错误信息 。

静态数据

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

静态数据就是包括以下几部分【安装目录】:

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

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

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

 

动态数据

动态数据,就是在Harbor运行过程中生成的各种数据,包括数据库、缓存、镜像文件等; 该类数据需要根据实际情况来进行周期性的备份,例如一周备份一次,并保留最近4个备份文件。

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

harbor文件说明

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

创建备份目录

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

$ mkdir -p /data/harbor_backup_v1

备份Harbor安装目录

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

$ scp /app/harbor harbor-server:/data/harbor_backup_v1/harbor

 

备份“动态数据”

使用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/  harbor-server:/data/harbor_backup_v1/ 

 

还原

使用之前备份的文件恢复到之前版本的Harbor

停止Harbor

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

$ cd  /app/harbor$ docker-compose down

 

删除当前的Harbor目录:

$ cd /app/$ rm -rf harbor

 

恢复之前版本的Harbor目录:

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

$ scp harbor-server:/data/harbor_backup_v1/harbor /app/harbor 

 

如果备份文件是在本机:

$ mv  /my_backup_dir/harbor  harbor

 

恢复data目录

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

$ rm -rf  /data
$ scp  harbor-server:/data/harbor_backup_v1/data  /data

 

重启Harbor

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

 

 

 

posted @ 2022-09-10 09:48  九尾cat  阅读(797)  评论(0编辑  收藏  举报