NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

大规模集群中 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:016881
用户头像

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

关注

评论 2 条评论

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

架构师训练营第三周作业

张锐

设计模式-单例&组合

Z冰红茶

第三周作业

Geek_5d0795

极客大学架构师训练营

Spring 源码学习 - @Async注解实现原理

公众号:好奇心森林

Spring Boot aop

springboot + rabbitmq 做智能家居,我也没想到会这么简单

程序员小富

Java Spring Boot RabbitMQ 智能设备

架构师训练营 -week3 命题作业

J.Smile

极客大学架构师训练营

区块链中的“链上”和“链下”

CECBC

区块链技术 分布式身份标识 难以篡改

第三周总结

Geek_5d0795

极客大学架构师训练营

架构师面试题(2)

满山李子

week3 总结

雪涛公子

Feign Client 原理和使用

公众号:好奇心森林

Spring Boot HTTP

架构师训练营 第3周作业

Lingjun

极客大学架构师训练营

Week 03 学习总结 代码重构

Z冰红茶

架构师训练营 第3周总结

Lingjun

极客大学架构师训练营

如何搭建一个本地服务器集群

Rayjun

分布式

Week01 作业

Conn

Raft探索历程--Part1

老胡爱分享

分布式协同 raft

设计模式学习总结

qihuajun

「架构师训练营」第 3 周作业

邓江川。

模式与重构

满山李子

单例及组合模式实践

WulalaOlala

设计模式 极客大学架构师训练营

架构师训练营第 3 周 _ 课后作业

方舟勇士

课程作业

邮件领域还有创新吗?

池建强

创业 软件 创新 邮件

数字政府升级下的数据产品探索

数据司令

大数据 政务信息化 数字政务

创业公司技术体系建设

星际行者

Kubernetes DevOps APM 基础设施

重学设计模式之单例模式

设计模式 单例模式 Singleton

week3 作业

雪涛公子

第二周学习总结

任小龙

week3 命题作业

任小龙

第三章总结

每周学习总结

Conn

极客大学架构师训练营

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