聊聊面向全球的镜像分发网络
1. 全球的聊聊络网络规划
很多面向全球的多区域基础设施,在设计之初并没有在网络规划上花费太多心思。全球当业务复杂到一定程度时,像分又被逼着进行网络调整和优化。发网而任何网络上的聊聊络大调整,都将对业务产生巨大影响。全球最终会陷入进退两难之地,像分只能投入更多人力,发网背上历史包袱,聊聊络一次又一次行走于悬崖之颠。全球
如下图是像分我认为比较理想的一种网络拓扑:

网络规划主要有如下几点:
网段划分在面向全球的业务形态下,网络被割裂为两部分: 海外和中国内地。发网我更倾向于建立两个中心,聊聊络国内的全球核心节点设置在北京,主要面向国内业务;海外的像分核心节点设置在新加坡,主要面向海外业务。
因此将 10.128.0.0/16 及以上网段划分给海外,10.127.0.0/16 及以下划分给国内。同时,每个区的网段之间相隔 8,预留一定的扩展空间。
实现连通如果是同一个 VPC,那么内网是香港云服务器可达的。但是如果是不同 VPC、不同的厂商、不同的区域之间,我们通常会借助一定的方法实现连通:公网或者专线。
公网是比较普适的一种方法。我们可以基于公网,搭建 VPN 内网,实现网络连通。但是,公网的连通质量不能得到保障,因此还有一种方式就是专线。
专线能够实现跨区域的网络连通,但是云专线通常限于同一家云厂商。也就是说,华为云北京的云专线只能连通华为云新加坡,而不能连通 AWS 新加坡。
配置路由实现连通只是云服务器提供商相当于插上了网线,但是转发数据包时,并不清楚 IP 包的下一跳是哪里,因此还需要配置路由。
由于设置有两个网络核心,海外的区域与海外的核心节点需要互通,国内的区域与国内的核心节点需要互通。至于其他各区域是否互通,需要看是否有需求。比如,我们需要在内网进行镜像数据的 P2P 分发,那么就需要各区域也互通。
2. 建设全球镜像分发能力
全球的镜像分发能力是建立在全球 IDC 内网互通的前提下的。我们不能让基础设施暴露于公网之上,全部的镜像数据都是通过内网流量进行传输的。
如下图是b2b信息网一个全球镜像分发系统:

我们的研发部门在国内,而部署的服务遍布全球。镜像数据的流转会经过以下流程:
国内构建镜像并推送到国内的 Habor 中。国内 Habor 同步镜像到海外的 Habor 中。在某个区域,部署海外的应用,拉取镜像。由于每个 Docker 中都配置了 Dget 的地址作为 registry-mirrors,应用镜像被缓存到 Dget 中。在同一个区域,多个副本部署时,都将直接拉取 Dget 中的镜像。3. Habor 的部署与高可用
3.1 部署 HaborHarbor 部署主要有两种方式 Helm Chart 和 Docker Compose。这里推荐的是 Docker Compose,因为作为一个不会频繁变更、稳定性要求高的服务,VM 比 Kubernetes 更适合作为 Habor 的基础设施。
3.2 高可用 HarborHarbor 的高可用主要有两种方式:
共享存储。一致性高,需要部署双活\主备的存储后端。多 Harbor 之间同步。一致性不高,镜像同步需要时间。我建议采用的方案是共享存储,不想等待 Harbor 同步完成,推送完的镜像即可用。如下图,共享存储方案下,需要以双活\主备的形式部署存储组件:

这里需要共享的组件有:
共享 PGSQL可以直接购买云厂商的服务,然后初始化创建表。
CREATE DATABASE notary_server;
CREATE DATABASE notary_signer;
CREATE DATABASE harbor ENCODING UTF8;
CREATE USER harbor;
ALTER USER harbor WITH ENCRYPTED PASSWORD 123456;
GRANT ALL PRIVILEGES ON DATABASE notary_server TO harbor;
GRANT ALL PRIVILEGES ON DATABASE notary_signer TO harbor;
GRANT ALL PRIVILEGES ON DATABASE registry TO harbor;
GRANT ALL PRIVILEGES ON DATABASE harbor TO harbor;
GRANT ALL PRIVILEGES ON DATABASE clair TO harbor;external_database:
harbor:
host: 1.1.1.1
port: 5432
db_name: harbor
username: harbor
password: 123456
ssl_mode: disable
max_idle_conns: 10
max_open_conns: 100
notary_server:
host: 1.1.1.1
port: 5432
db_name: notary_server
username: harbor
password: 123456
ssl_mode: disable
max_idle_conns: 10
max_open_conns: 30
notary_signer:
host: 1.1.1.1
port: 5432
db_name: notary_signer
username: harbor
password: 123456
ssl_mode: disable
max_idle_conns: 10
max_open_conns: 30
共享 RedisHarbor 的 Redis 主要存储的是会话 Session 信息,会影响到 Harbor UI 页面的登录。如果对可用性要求不太高,可以使用自建的 Redis 实例,因为即使 Redis 的存储数据丢失,对 Harbor 的数据完整性没有影响。
共享 S3 对象存储我使用的是华为 OBS 对象存储,这里的 AKSK 需要给 full 权限。
storage_service:
s3:
accesskey: xxx
secretkey: xxx
region: ap-southeast-3
regionendpoint: https://obs.ap-southeast-3.myhuaweicloud.com
bucket: xxx
encrypt: false
secure: true
v4auth: true
chunksize: 5242880
multipartcopychunksize: 33554432
multipartcopymaxconcurrency: 100
multipartcopythresholdsize: 33554432
rootdirectory: /registry/如果担心 S3 的单点问题,可以购买两个 Bucket,相互同步镜像数据。这样,当其中一个 Bucket 有异常时,可以迅速切换到另外一个 Bucket 恢复服务。
4. 利用 Dragonfly 节省带宽
为什么需要 Dragonfly 分发镜像? 其中很大的一个原因在于节省带宽,还有就是避免 Habor 的负载过大。
如果不使用 Dragonfly 镜像分发,那么每次拉取镜像都会向 Habor 请求数据。如下图:

而采用 Dragonfly 之后,同一个区域只需要请求一次 Harbor,其他请求都可以通过区域内的流量完成。这种方式大大加快了镜像拉取过程,节省了跨区域的带宽,减轻了 Habor 的负载压力。
5. 总结
最近在给业务重新规划部署一套镜像管理系统,本篇是相关思考和实践的一些总结。
本文主要从网络规划开始,聊到全球镜像的分发。网络规划主要涉及网段规划、实现连通、配置路由三个部分。而镜像分发主要采用的是 Habor + Dragonfly 的方案。同时,推荐的是采用共享存储的方式部署高可用的 Harbor。
实际上,在部署完 Habor 之后,我还对各区域拉取镜像的速度进行了测试。另外,还需要将影响 Habor 服务的依赖项配置监控,持续的改进,才能打造好的镜像仓库及分发系统。
6. 参考
https://github.com/dragonflyoss/Dragonfly2https://github.com/goharbor/harbor相关文章
解决电脑开机问题之CMOS信息错误(排查和修复CMOS信息错误导致的无法开机故障)
摘要:电脑开机问题是我们常常会遇到的困扰,其中一种常见的情况是CMOSComplementaryMetal-Oxide-Semiconductor)信息错误导致无法正常开机。CMOS是...2025-11-05华硕U4000在设计中的优势与应用(探索华硕U4000在设计领域的无限潜能)
摘要:在现代设计领域,高效、可靠且功能强大的计算机是不可或缺的工具。华硕U4000作为一款强大的设计工作站,以其卓越的性能、卓越的图形处理能力和可靠性,成为众多设计师的首选。本文将深入探...2025-11-05- 摘要:在智能手机市场中,索尼一直以其出色的品质和创新的设计而备受赞誉。索尼MT25i作为该公司的一款旗舰智能手机,拥有出色的性能和独特的特点,为用户带来了极佳的使用体验。一:外观...2025-11-05
以西部数据Ultra为主角的存储技术的(探索以西部数据Ultra如何引领存储技术变革)
摘要:随着信息技术的迅猛发展,存储技术成为现代社会不可或缺的一部分。然而,存储设备的容量、速度和可靠性一直是制约其发展的主要因素之一。而以西部数据Ultra为代表的新一代存储技术,正在以...2025-11-05宏基57MX评测——性能卓越的高端笔记本电脑(宏基57MX是游戏爱好者的绝佳选择)
摘要:作为一款面向高端市场的笔记本电脑,宏基57MX凭借其卓越的性能和出色的游戏体验,成为了众多游戏爱好者追捧的对象。本文将从多个方面对宏基57MX进行评测,以帮助读者更好地了解这款产品...2025-11-05- 摘要:在如今互联网高度发达的时代,网络安全问题日益突出,用户在上网的过程中面临着诸多潜在的威胁。而为了应对这些威胁,360公司推出了一款优秀的网络安全产品——360小红伞引擎。本文将详细...2025-11-05

最新评论