写点什么

大规模集群中 Docker 镜像如何分发管理?试试 Uber 刚开源的 Kraken

  • 2019-03-06
  • 本文字数:937 字

    阅读完需:约 3 分钟

大规模集群中Docker镜像如何分发管理?试试Uber刚开源的Kraken

Docker 注册表的主要目的是存储和分发 Docker 镜像,看似是一个相对简单的任务,但是如果遇到了像 Uber 这样的大规模计算集群,就很容易成为可伸缩性的瓶颈。在多区域和混合云系统的计算环境中,镜像分发会变得更具挑战性。


为了解决遗留 Docker 注册表堆栈的性能问题,Uber 的集群管理团队开发了一个开源对等(P2P)Docker 注册表 kraken。


Docker 容器是 Uber 基础设施的基础构建块,但是随着计算集群数量和大小的增加,一个简单的带有 sharding 和缓存的 Docker 注册表设置无法跟上高效分发 Docker 映像所需的吞吐量。


Kraken 重点关注在可扩展性和可用性方面,用于混合云环境中的 Docker 镜像管理、复制和分发。支持可插拔的后端,Kraken 可以作为分发层插入到现有的 Docker 注册表设置中。



图 1 Docker 图像层分布在 Kraken 集群中的可视化

架构

在 Kraken 研发时,Uber 探索了多种设计,最终选择了 p2p 架构。Kraken 使用针对数据中心网络环境定制的 P2P 协议,并在企业级改进了微服务生命周期管理。



代替管理数据块,Kraken 支持可插入存储选项,可以插入可靠的 blob 存储选项,如 S3、HDFS 或其他注册表,且存储接口简单,易于添加新选项。


另外,Kraken 在现有的成熟技术上建立了独特的数据分发解决方案,支持自我修复,易于维护,支持集群之间的无损和基于规则的异步复制。

大规模的性能改进

2018 年年初,Kraken 首次部署在了 Uber 中,其在遗留 Docker 注册表堆栈中遇到的性能问题迎刃而解。


据悉,在 Uber 最繁忙的时候,Kraken 集群每天分发超过 100 万个 blob,其中有 10 万个分发的 blob 大小超过 1GB 或更多。在生产高峰期,Kraken 可以在 30 秒内分发 20000 个 100MB 到 1GB 的 blob。


Kraken 的高可扩展性使其能够支持至少 8000 台主机的集群,并以超过集群中主机最大下载速度限制 50%的速度分发 Docker 镜像。另外,对 Kraken 来说,集群和镜像大小对下载速度没有显著影响。


自内部发布以来,Kraken 一直被用于管理和分发 Uber 的所有 Docker 镜像。这次将该工具开源出来,Uber 表示希望能够激发有关工程和设计最佳实践的讨论,以便与 Docker 一起构建一个适应性强且可靠的基础设施。


Kraken 的 GitHub 地址:https://github.com/uber/kraken


Uber 博客的原文链接:https://eng.uber.com/introducing-kraken/


2019-03-06 15:017187
用户头像

发布了 34 篇内容, 共 28.6 次阅读, 收获喜欢 58 次。

关注

评论 2 条评论

发布
用户头像
Docker 注册表,我去年还买了个表……麻烦译者专业点……
2019-03-12 22:07
回复
用户头像
Docker 注册表,我去年还买了个表……
2019-03-12 22:06
回复
没有更多了
发现更多内容

28天写作复盘

一笑

28天写作

【无偿分享】史上最全Python学习大礼包

sum56

Python 学习 学习方法 python 爬虫 资料整理

关于京东技术,你想了解的都在这里丨征文活动获奖及优秀专栏推荐

京东科技开发者

京东 征文大赛

谈谈我所理解的科幻「-28/28」

道伟

28天写作

养成好习惯,需要的不只是意志力

Justin

习惯养成 碎碎念 28天写作

2021年的十五个DevOps趋势预测

禅道项目管理

DevOps 微服务 自动化 趋势

2021版阿里Java亿级并发设计手册:基础+数据库+缓存+消息队列+分布式+维护+实战

Java架构追梦

Java 阿里巴巴 面试 系统架构 亿级并发

浪潮云洲工业互联网平台创新实践,受权威机构关注!

工业互联网

电子书下载|2020 年云原生年货小红书来啦!

阿里巴巴云原生

容器 微服务 开发者 云原生 k8s

即构发布 LCEP 低代码互动平台产品 RoomKit,实现互动房间0代码搭建

ZEGO即构

智能汽车颠覆世界!(28天写作 Day28/28)

mtfelix

28天写作 智能汽车 未来世界

redis分布式锁的这些坑,我怀疑你是假的开发

华为云开发者联盟

redis 分布式 分布式锁 服务器 value

IDEA永久注册码来了!!!(支持2020.3.1版本)

程序员生活志

IDEA

天天向上跑分模式介绍开发

luluhulian

CSS开发过程中的20个快速提升技巧

华为云开发者联盟

CSS

零基础实现Java直播(二):实现流程

ZEGO即构

长篇总结之JavaScript,巩固前端基础

我是哪吒

JavaScript 程序员 面试 大前端 2月春节不断更

一款基于 Web 的通用数据管理工具(转载)

BinTools图尔兹

数据库 运维 开发工具 dba 数据管理工具

Elasticsearch 搜索结果解析

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

终于搞懂了Python模块之间的相互引用问题

华为云开发者联盟

Python 路径 代码 模块

使用V8和node轻松profile分析nodejs应用程序

程序那些事

性能优化 Profile nodejs 性能分析 程序那些事

使用logstash作为docker日志驱动收集日志

远鹏

Docker Logstash 日志系统

工业绿色哪家强?3D可视化盾构机构建隧道,推动设备预测性运维

一只数据鲸鱼

物联网 数据可视化 绿色交通 绿色工业 盾构机

产品经理:一款用户全量会话轨迹管理产品是怎么炼成的?

博睿数据

并发队列:PriorityBlockingQueue和DelayQueue案例使用

叫练

并发编程 队列 优先级队列 条件队列 并发队列

“嗖”一下28 天过去啦,我们都在交作业!

李忠良

28天写作

面试时遇到一致性哈希算法这样回答会让面试官眼前一亮

中间件兴趣圈

负载均衡 面试 一致性哈希

看KubeEdge携手K8S,如何管理中国高速公路上的10万边缘节点

华为云开发者联盟

Kubernetes 微服务 kubeedge 边缘

深度集成 Flink: Apache Iceberg 0.11.0 最新功能解读

Apache Flink

flink

目前的区块链IPFS矿机模式交易系统开发的简单解析

v16629866266

程序员成长第四篇:程序员的职业天花板

石云升

28天写作 2月春节不断更 职场天花板

大规模集群中Docker镜像如何分发管理?试试Uber刚开源的Kraken_开源_Uber_InfoQ精选文章