千家信息网

harbor高可用集群配置

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,arbor是由VMWare在Docker Registry的基础之上进行了二次封装,加进去了很多额外程序,而且提供了一个非常漂亮的web界面。说明在上一篇 《企业级安装与配置Harbor镜像管理系统》
千家信息网最后更新 2026年11月02日harbor高可用集群配置
arbor是由VMWare在Docker Registry的基础之上进行了二次封装,加进去了很多额外程序,而且提供了一个非常漂亮的web界面。

说明

在上一篇 《企业级安装与配置Harbor镜像管理系统》中,我们简要说明了单机版本harbor的配置。然而这种单机部署显然无法满足在生产中需求,必须要保证应用的高可用性。

目前有两种主流的方案来解决这个问题:

双主复制

多harbor实例共享后端存储

双主复制 主从同步

harbor官方默认提供主从复制的方案来解决镜像同步问题,通过复制的方式,我们可以实时将测试环境harbor仓库的镜像同步到生产环境harbor,类似于如下流程:

在实际生产运维的中,往往需要把镜像发布到几十或上百台集群节点上。这时,单个Registry已经无法满足大量节点的下载需求,因此要配置多个Registry实例做负载均衡。手工维护多个Registry实例上的镜像,将是十分繁琐的事情。Harbor可以支持一主多从的镜像发布模式,可以解决大规模镜像发布的难题:

只要往一台Registry上发布,镜像就像"仙女散花"般地同步到多个Registry中,高效可靠。

如果是地域分布较广的集群,还可以采用层次型发布方式,如从集团总部同步到省公司,从省公司再同步到市公司:

然而单靠主从同步,仍然解决不了harbor主节点的单点问题。

双主复制说明

所谓的双主复制其实就是复用主从同步实现两个harbor节点之间的双向同步,来保证数据的一致性,然后在两台harbor前端顶一个负载均衡器将进来的请求分流到不同的实例中去,只要有一个实例中有了新的镜像,就是自动的同步复制到另外的的实例中去,这样实现了负载均衡,也避免了单点故障,在一定程度上实现了Harbor的高可用性:

这个方案有一个问题就是有可能两个Harbor实例中的数据不一致。假设如果一个实例A挂掉了,这个时候有新的镜像进来,那么新的镜像就会在另外一个实例B中,后面即使恢复了挂掉的A实例,Harbor实例B也不会自动去同步镜像,这样只能手动的先关掉Harbor实例B的复制策略,然后再开启复制策略,才能让实例B数据同步,让两个实例的数据一致。

另外,我还需要多吐槽一句,在实际生产使用中,主从复制十分的不靠谱。

所以这里推荐使用下面要说的这种方案。

多harbor实例共享后端存储 方案说明

共享后端存储算是一种比较标准的方案,就是多个Harbor实例共享同一个后端存储,任何一个实例持久化到存储的镜像,都可被其他实例中读取。通过前置LB进来的请求,可以分流到不同的实例中去处理,这样就实现了负载均衡,也避免了单点故障:

这个方案在实际生产环境中部署需要考虑三个问题:

共享存储的选取,Harbor的后端存储目前支持AWS S3、Openstack Swift, Ceph等,在我们的实验环境里,就直接使用nfs。

Session在不同的实例上共享,这个现在其实已经不是问题了,在最新的harbor中,默认session会存放在redis中,我们只需要将redis独立出来即可。可以通过redis sentinel或者redis cluster等方式来保证redis的可用性。在我们的实验环境里,仍然使用单台redis。

Harbor多实例数据库问题,这个也只需要将harbor中的数据库拆出来独立部署即可。让多实例共用一个外部数据库,数据库的高可用也可以通过数据库的高可用方案保证。

环境说明 实验环境
ip role192.168.198.133 harbor192.168.198.135 harbor192.168.198.136 redis、mysql、nfs

需要强调的是,我们的环境中,不包括负载均衡器的配置,请自行查阅负载均衡配置相关文档

配置说明 安装nfs
# 安装nfsapt install nfs-kernel-server nfs-common# 编辑/etc/exports文件/data   *(rw,no_root_squash)chmod 777 -R /datasystemctl start nfs-server
安装redis和mysql

这里我们就直接通过docker安装,docker-compose.yml文件内容如下:

version: '3'services:  mysql-server:    hostname: mysql-server    container_name: mysql-server    image: mysql:5.7    network_mode: host    volumes:      - /mysql57/data:/var/lib/mysql    command: --character-set-server=utf8    environment:      MYSQL_ROOT_PASSWORD: 123456  redis:    hostname: redis-server    container_name: redis-server    image: redis:3    network_mode: host
启动
docker-compose up -d
导入registry数据库

配置好了mysql以后,还需要往mysql数据库中导入harbor registry库。在《企业级安装与配置Harbor镜像管理系统》中,我们安装了一个单机版harbor,启动了一个mysql,里面有一个registry数据库,直接导出来,然后再导入到新数据库中:

# 导出数据库:

docker exec -it harbor_db /bin/bashmysqldump -uroot -p --databases registry > registry.dump

# 在宿主机上将registry.dump复制出来

docker cp  harbor_db:/registry.dump ./

# 将宿主机上的registry.dump复制到独立的mysql容器中

docker cp ./registry.dump:/registry.dump

# 在独立的mysql容器将将registry数据库导入

docker exec -it/bin/bashmysql -uroot -pmysql> source /registry.dump
配置harbor 挂载nfs目录

在harbor节点上挂载nfs目录:

mount -t nfs 192.168.198.136:/data /data
修改harbor.cfg配置

在harbor节点上,下载好harbor的安装包,生成好自签名证书,修改prepare文件,可直接参考 《企业级安装与配置Harbor镜像管理系统》,不同的是,harbor.cfg文件需要修改数据库及redis配置如下:

db_host = 192.168.198.136db_password = 123456db_port = 3306db_user = rootredis_url = 192.168.198.136:6379
修改docker-compose.yml配置

与单机版harbor相比,集群配置不再需要启动mysql和redis,所以docker-compose.yml也需要作相应修改。事实上,在harbor的安装目录中,有个ha的目录,里面已经提供了我们需要的docker-compose.yml文件,只需要复制出来即可。实际上,在这个目录中,还提供了使用lvs作为负载均衡器时,keepalived的配置。

cp ha/docker-compose.yml./prepare./install.sh

在两个harbor节点上完成安装以后,我们可以通过绑定hosts到不同的节点来验证两个节点的负载均衡效果。

原文来自: https://www.linuxprobe.com/harbor-high-availability.html

实例 数据 配置 镜像 数据库 同步 节点 均衡 方案 环境 问题 存储 不同 两个 主从 文件 目录 单机 多个 实际 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 关于新基建和互联网科技 浩特互联网科技 狮子座互联网科技有限公司 互联网 视角下的科技创新 上海万想互联网科技 玖二柒互联网科技公司待遇 宁波青枫互联网科技有限公司 语蝶互联网科技有限公司 佛山市拉法互联网科技有限公司 烟台灵鸽互联网科技有限公司 互联网科技圈年度人物 互联网时代的科技公司 小米互联网科技园入驻 黑云互联网科技有限公司 南京一网一红互联网科技有限公司 抖集互联网科技技术咨询 互联网领先科技活动 绵阳真晨互联网科技有限公司 知域互联网科技有限公司官网 广东万易互联网科技有限公司惠州分公司 狮子座互联网科技有限公司 广州互联网络科技有限公司 广州善班互联网科技 中正互联网科技招聘 互联网金融中的现代科技 互联网金融科技名词解释 互联网科技快讯热点 科技互联网行业投资研究 同城互联网络科技
0