专栏首页腾讯云TStack专栏Harbor企业级实践丨20倍性能提升so easy!

Harbor企业级实践丨20倍性能提升so easy!

本文作者 / 阿杜

玩Docker,玩K8s,玩Harbor

爱技术,爱运动,爱生活

“K8s&云原生技术开放日”特邀讲师

本文内容源于“K8s&云原生技术开放日”主题演讲——Harbor企业级实践。

Harbor作为腾讯企业云中心底层统一的镜像仓库管理组件,其性能很大程度上决定了上层容器应用的发布时延。为此,我们针对Harbor做了很多性能优化,使得镜像下载速度提升了20倍。

本次分享围绕Harbor性能提升展开,依次介绍Harbor存储选型,Harbor高并发压测以及Harbor备份还原方案……

harbor介绍

Harbor是目前最流行的开源企业级镜像仓库解决方案。除了原生支持镜像仓库,chart仓库;还支持一些企业用户所迫切需要的一些功能,例如:图形用户界面、完善的认证和鉴权机制、镜像复制、镜像病毒扫描、镜像删除与垃圾回收机制以及RESTFUL API接口等。另外,它也易于部署,目前支持两种部署方式:Docker-Compose以及Helm Chart

harbor存储方案

我们使用Ceph作为Harbor持久化存储后端,在企业生产环境中Harbor对Ceph存储的使用也进行了一次次的演变:Ceph RBD->Ceph FS->Ceph FS+RGW混合存储,如下:

我们先对比一下Ceph提供的三种存储服务的优缺点:

  • Ceph RBD
    • 优点:I/O带宽高,读写延迟低;稳定性好
    • 缺点:多读单写,不支持多节点挂载
  • Ceph FS
    • 优点:多读多写,支持多节点挂载
    • 缺点:I/O带宽较低,读写延迟较高,性能较差;稳定性较差
  • Ceph RGW
    • 优点:稳定性和性能均介于RBDCephFS之间且支持多读多写
    • 缺点:对象存储,需要单独的客户端支持

在对比完优缺点后,我们可以看出:由于RBD不支持多读多写,无法通过RBD实现Harbor高可用,所以这里我们弃用;Ceph FSCeph RGW均支持多读多写,这里我们根据Harbor组件对Ceph RGW的支持与否进行选择,对存储性能要求比较高而且本身支持Ceph RGW存储的组件我们使用对象存储,其它组件我们使用Ceph 文件系统:

harbor高并发压测

在企业生产环境中使用Harbor,我们需要对Harbor进行高并发压测,来得出Harbor生产环境的性能数据。这里我们用三台压测机(Docker),一台被测机(Harbor)进行压测,所有机器均使用万兆网卡且忽略CPU、内存、I/0瓶颈等因素。

我们分别针对三种存储:Ceph FSRook Ceph FS以及Rook Ceph RGW进行压测对比:

1、Ceph FS

2、Rook Ceph FS

3、Rook Ceph RGW

从压测数据可以看出:

1、随着并发量的增加,三种存储平均拉取时间均增加且成功率越来越低

2、拉取性能:Rook RGW>>Rook CephFS~=CephFS

对于Harbor对象存储的显著性能提升这里除了对象存储本身的性能要高于文件系统外,还存在如下两个原因:

1、Harbor在切换为对象存储后,采用重定向协议,所以数据不需要在Harbor这里进行中转,节省了中转时间和资源

2、流量和并发瓶颈从Harbor切到Ceph RGW

综合这些原因导致Harbor在切换Ceph RGW后性能有了质的飞跃——提升了20倍!

harbor备份还原方案

最后我们讨论一下Harbor的备份还原(这里简称为BUR)方案。在讨论BUR之前,我们先回顾一下Harbor的存储选型:Ceph FS+RGW,如下:

这里我们针对该存储选型定制备份还原方案。由于采用的是混合方案,所以我们需要分别对文件系统和对象存储进行备份还原:

1、Ceph 文件系统BUR

Ceph 文件系统备份——对于CephFS,Harbor中的应用数据保存在pv中,而我们的部署场景实际上是落在CephFS路径上。因此要备份Harbor应用数据只需要备份每个pv对应的CephFS目录即可

Ceph 文件系统还原——还原是备份的逆过程,只需要将备份的应用数据写入到pv对应的CephFS路径上即可

2、Ceph 对象存储BUR

对于Ceph RGW,Harbor中的应用数据保存在BUCKET中,因此要备份Harbor应用数据只需要备份BUCKET即可,还原同理(这里我们用s3cmd工具进行数据同步):

对于Ceph RGW的BUR,如果单纯s3cmd同步整个应用目录,则比较慢;需要对应用目录进行数据切分,并发同步数据分区(registry-rgw-BUR-tools:https://github.com/duyanghao/registry-rgw-BUR-tools)

harbor迁移

Harbor备份还原衍生到一个话题:Harbor迁移。可以认为:迁移是一种特殊的还原场景,如下:

后 续

企业在生产环境使用Harbor时会产生很多"不适应",比如:如何适配企业本身的认证&鉴权机制?如何适配企业复杂的RESTful API需求?如何实现Harbor高可用?针对这些问题,我们应该如何解决?更多精彩内容见下期分享内容……

猜你还想看这些内容

●如何使用dex搭建一个身份认证系统?

●Ceph Bulestore磁盘空间分配初探

Kustomize上篇丨Helm 和 Kustomize:不只是含谷量的区别

Kustomize下篇丨Kustomize 中的增删改查

· END ·

记得文末点个好看鸭~


点就完事儿了!

本文分享自微信公众号 - 腾讯云TStack(gh_035269c8aa5f),作者:阿杜

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Harbor企业级实践丨零侵入改造!

    ? 本文作者 / 阿杜 玩Docker,玩K8s,玩Harbor 爱技术,爱运动,爱生活 “K8s&云原生技术开放日”特邀讲师 在上一篇中,我们分享了Harb...

    腾讯云TStack
  • S3请求来了,该怎么处理?

    ? 小新 职场新人,存储小白 立志成为职场老鸟,存储专家; 影视迷,东野迷。 前言 对于RGW而言,请求处理的过程是我们最关注的,因此在这一部分主要是归纳整理...

    腾讯云TStack
  • 招聘 | WE WANT YOU!

    腾讯云TStack
  • 如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

    使用beeline连接HiveServer2,创建columnread角色并授权test表s1列的读权限,将columnread角色授权给fayson_r用户组

    Fayson
  • 19-猜数,5次机会

    凯茜的老爸
  • 被法国罚11亿欧元!苹果不服计划进行上诉;小米在深圳成立新公司;四大科技巨头市值蒸发1.3万亿美元;

    据彭博社报道,苹果计划就法国反垄断机构的罚款决定进行上诉。此前法国竞争管理局向苹果公司开出11亿欧元的罚单,理由是后者在供应网络内订立了非法协议,苹果的两家批发...

    SDNLAB
  • 机器人的伺服执行机构原理图

    将脉冲电信号转换为角位移或直线位移的一种D/A转换装置。接收一个电脉冲,步进电动机就带动机器人的关节轴转过一个相应的角度。步进电动机转过的角度与接收的脉冲数成正...

    机器人网
  • 适用于小团队的前端规范示例

    适用于前端开发团队规范为参考规范,不全是硬性要求,统一团队编码规范和风格。让所有代码都是有规可循的,并且能够获得沉淀,减少重复劳动。

    用户5997198
  • MIT 发明“雾中看车”新成像系统,雾天自动驾驶表现比人类更好

    新智元

扫码关注云+社区

领取腾讯云代金券