写点什么

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

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

关注

评论 2 条评论

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

吕氏餐饮:用宜搭智能考核绩效,人事管理更高效

一只大光圈

低代码 数字化 钉钉宜搭

基于爬虫的测试自动化经验分享

FunTester

爬虫 性能测试 办公自动化 FunTester 测试自动化

Linux之ack命令

入门小站

Linux

在线JSON转CSV格式文件工具

入门小站

工具

经验分享 | 最佳文档协作软件推荐

小炮

在线JSON转HTML工具

入门小站

工具

“微博评论”的高性能、高可用架构设计

凌波微步

「架构实战营」

如何设计信息安全领域的实时安全基线引擎

Apache Flink

大数据 flink 开源 编程 实时计算

微博评论的高性能高可用计算架构设计

五月雨

架构实战营 「架构实战营」

架构训练营 模块五

Geek_16d2b8

架构训练营5期

discuz防止恶意注册!

喀拉峻

网络安全

模块五作业

blazar

「架构实战营」

“微博评论”的高性能高可用计算架构

张逃逃

SpringCloud-Feign

昊运

SpringCloud

测性能,拿周边|OceanBase 3.1.2 版邀你来玩

OceanBase 数据库

【图解数据结构】树和二叉树全面总结

知心宝贝

二叉树 数据结构与算法 二叉树遍历 3月月更 树和二叉树

设计微博系统中”微博评论“的高性能高可用计算架构

IT屠狗辈

架构实战营 微博评论架构实战

微博评论高性能高可用计算架构

石小天

「架构实战营」

高可用演练中堆叠切换失败分析

BUG侦探

高可用 堆叠 链路聚合

一文读懂可观测性与Opentelemetry

博睿数据

架构实战营:模块五作业

刘璐

Flutter仿微信价值几个亿的页面

岛上码农

flutter ios开发 Android开发 移动端开发 3月月更

模块五 评论计算架构

Geek_28cf33

Golang 1.18正式版发布,正式加入泛型语言家庭

学神来啦

Go golang Go 语言

透过荣耀耳机的三重“炼金术”,重识TWS行业

脑极体

海量非结构化数据副本难保护,焱融科技携手英方推出联合解决方案

焱融科技

云计算 分布式 云原生 高性能 文件存储

【英雄大会】之谁说站在光里的才算英雄(上篇)

Anna

经历分享 作者 简介

微博“发评论”高性能高可用计算架构

Fingal

#架构实战营

“易+”开源 | 网易会议开源之移动端篇

网易云信

开发

深度强化学习的“丛林”大冒险

脑极体

2月券商App行情刷新及交易体验报告,东方与安信升至领导者象限

博睿数据

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