HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

用 Harbor 和 Kubernetes 构建高可用企业级镜像仓库

  • 2020-03-06
  • 本文字数:1678 字

    阅读完需:约 6 分钟

用 Harbor 和 Kubernetes 构建高可用企业级镜像仓库

VMware 公司去年 3 月开源了企业级容器 Registry 项目 Harbor,由 VMware 中国研发的团队负责开发。Harbor 可帮助用户迅速搭建企业级的 registry 服务。它提供了管理图形界面, 基于角色的访问控制 RBAC,镜像远程复制(同步),AD/LDAP 集成、以及审计日志等企业用户需求的功能,同时还原生支持中文和英文,深受国内外用户的喜爱。许多开源社区的开发者也给 Harbor 项目添砖加瓦,贡献代码、反馈问题和提出建议。在大家共同努力下,Harbor 项目推出以来,在 GitHub 获得了近 2000 个 star 和 500 多个 forks。

Harbor 架构简介


从上图我们可以看出,Harbor 的几个基础模块:


1、Nginx:负责请求转发,URL 以 /v2/ 开始的请求会被转发到 Docker Registry 中,其它请求由 Admin Server 处理;


2、Admin Server:Harbor 的主体模块,提供 Web UI 和 RESTful API 以及 Auth 相关功能;


3、Replication Service:提供多个 Harbor 实例之间的镜像同步功能;


4、MySQL:Admin Server 和 Replication Service 所用到的数据库;


5、Docker Registry:Docker 官方镜像仓库;


6、Image Storage:镜像的存储介质,可以是本地磁盘,或者分布式存储,根据 Docker Registry 的配置而不同;

Harbor 高可用设计

提到系统的高可用性 (High Availability),我们一般会从这几个方面来设计:


1、计算高可用;


2、存储高可用;


3、网络高可用;


4、其他方面;


这里,我们主要围绕前两个方面,即计算高可用和存储高可用来展开讨论。



如上图所示,Replication Service 目前不支持多实例的并行同步,我们暂时去掉,只需要考虑其他模块,为了保证整个 Harbor 系统的高可用,除 Replication Service 以外的组件均需扩展为 3 个;

方案 1

独立的 3 个 Harbor 实例 + MySQL Galera 集群 + 镜像共享存储,如下图:



3 个独立的 Harbor 实例,通过一个 Load Balancer 来做流量转发。同时采用了共享会话方式,把会话的信息保存在 MySQL 数据库中,这样无论哪个实例响应用户的请求,都不会丢失会话;


3 个 Harbor 的 Docker Registry 共享一个存放镜像数据的存储,例如阿里云 OSS、GlusterFS、NFS 等,可参考 Harbor 或 Docker Distribution 的文档配置;MySQL 由于不能共享存储,采用了 Galera 集群,这是一个多主的 MySQL 集群,每个节点均可读可写,同时支持同步复制数据,保证了高可用,具体的部署在这里就不展开讨论,可以参考下面的链接:


GlusterFS,https://www.gluster.org/


Galera 集群,http://galeracluster.com/

方案 2

独立的 Harbor 子模块 + MySQL Galera 集群 + 镜像共享存储,如下图:



独立的 Harbor 子模块之间,通过负载均衡来通信,MySQL Galera 集群和镜像共享存储和方案 1 基本一样。这个方案的优点是各个子模块相互独立,每个子模块都有 2 个备份,通过负载均衡实现高可用,这里使用 Kubernetes Service 非常容易实现 LB,下面的章节会展开来说。

Harbor 基于 Kubernetes 的高可用实现

这里我们选择上面的方案 2,使用 Kubernetes 的 Replication Controller 来实现单个模块的备份,通过 Service 来实现服务发现和负载均衡,如果不想用共享存储,可以用 Kubernetes 提供的 PV 和 PVC(host path 模式),整体架构如下图所示:



下面步骤需要有一些 Kubernetes 的背景知识,同时可参考在 Harbor 的项目中的相关安装文档,https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md


Harbor 在 Github 上的文档是基于单实例的配置,修改成多实例高可用架构的具体部署可以参考下面的介绍:


1、部署 Replication Controller


make/kubernetes/**/*.rc.yaml 文件里面定义的组件副本数目为 1 个,可修改为多个,例如:replicas: 3, 如下图所示:


2、部署 ConfigMap


ConfigMap 可通过编辑 harbor.cfg 文件之后,由./prepare 脚本自动生成,存放在 templates 目录下,以下是一个生成的 yaml 文件样例:



3、部署 PV & PVC


PV 和 PVC 的配置定义了 Harbor 每个组件使用的存储,缺省是本机文件系统,可以改成 NFS,GlusterFS 等共享存储,以实现高可用。



本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/Tj7XGo023h3zXOpxDtkNMQ


2020-03-06 20:461007

评论

发布
暂无评论
发现更多内容

Autodesk Flame v2025.1.2最新激活版 支持Intel/M1/M2/M3

理理

RPA在物流企微私域场景的应用

京东科技开发者

30个sql调优及高级sql技巧

威哥爱编程

MySQL oracle #SQL

数据驱动决策:低代码平台如何助力智能化业务分析

天津汇柏科技有限公司

数据驱动 低代码平台

2024年区块链钱包现状与未来趋势分析

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

DoYourClone for Mac(磁盘克隆工具)

Mac相关知识分享

万界星空科技MES系统与各大系统的集成

万界星空科技

系统集成 mes 万界星空科技mes 生产管理MES系统

C++20中对于并发方面的进步

快乐非自愿限量之名

c++ 并发

探讨微服务治理场景中,Sermant Backend如何管理插件动态配置

华为云开发者联盟

Backend Developer javaagent 微服务、 sermant

如何用AI快速开发一个小程序?

FinFish

小程序开发 AI技术开发 AI生成小程序

FinClip助推鸿蒙系统全面商用,纯鸿蒙系统化加速冲刺!

Geek_2305a8

全景图拼接制作工具PTGui Pro for Mac

Mac相关知识分享

“元脑企智”EPAI:企业AI应用从“手工作坊”到“工厂高精产线”

脑极体

AI

「算力包」璀璨亮相2024中国算力大会!

九章云极DataCanvas

百度AI继续霸榜!百度搜索蝉联国内AI产品第一

Geek_2d6073

哪家前端跨平台开发工具最出色?

Geek_2305a8

Kubernetes的Pod调度:让你的应用像乘坐头等舱!

不在线第一只蜗牛

Kubernetes 容器 云原生

10款好用的开源 HarmonyOS 工具库

威哥爱编程

鸿蒙 HarmonyOS HarmonyOS NEXT

总奖金高达10万元!华为算法精英实战营“亲和任务调度系统”来啦!

华为云开发者联盟

cpu 芯片设计 任务调度

A股牛市来袭,资本涌动:加密市场的出路与机遇

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

万界星空科技MES数据的集成方式

万界星空科技

制造业 mes 万界星空科技 万界星空科技mes

HPE Aruba Networking Central扩展AI自动化能力 推出第三方设备及终端用户体验监控功能

科技热闻

Vue状态管理库Pinia详解

威哥爱编程

JavaScript Vue Pinia

Illustrator 2024(AI2024)的核心优势和特点

理理

(cdr平面设计) CorelDRAW Graphics Suite 2023 for mac 序列号分享

理理

用JS实现简单的屏幕录像机

京东科技开发者

阿里巴巴商品详情API返回值:电商行业发展的新动力

技术冰糖葫芦

API 接口 API 文档 API 测试 API 性能测试

打通前后端流程,案例解读华为云开源低代码引擎解决方案

华为云开发者联盟

软件开发 低代码, TinyEngine

功能强大的 VNC 远程控制软件VNC Server for Mac

Mac相关知识分享

软件

音乐创作编辑软件Studio One 7 Pro for mac

Mac相关知识分享

软件

域名的命名规则有哪些?注册域名需要注意哪些?

国科云

用 Harbor 和 Kubernetes 构建高可用企业级镜像仓库_行业深度_才云科技_InfoQ精选文章