共享后端存储采用harbor的方式进行部署,在高可靠的要求下,如何保证harbor的高可靠性?
今天就介绍下保证harbor的高可靠性需要采取多harbor的部署方式,这种架构是行业较为成熟的共享后端存储的方案,这种架构可以将任何一个实例持久化到存储的镜像,可被其他实例中读取。通过前置LB组件,如Keepalived,可以分流到不同的实例中去处理,从而实现负载均衡,也避免了单点故障。在实际的产线环境中,我们会采取keepalive作为负载均衡,redis作为harbor registry的多节点缓存,harbor默认session会存放在redis中,可将redis独立出来,从而实现在不同实例上的session共享,独立出来的redis也可采用redis sentinel或者redis cluster等方式来保证redis的高可用性。mysql多个实例无法共享一份mysql数据文件,可将harbor中的数据库独立出来。让多实例共用一个外部数据库,独立出来的mysql数据库也可采用mysqls cluster等方式来保证mysql的高可用性。需要注意的是,由于redis和mysql采用外部部署,因此需要在docker-compose.yml中删除或注释redis和mysql的服务项,同时删除其他服务对其的依赖,官方自带的harbor中已经存在修改好的docker-compose文件,建议选择官方的源进行部署。