最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

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

关注

评论 2 条评论

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

ChatGPT们接踵而至,AI会彻底改变我们的工作方式吗?

引迈信息

人工智能 AI 低代码 ChatGPT JNPF

开心档之C++ STL 教程

雪奈椰子

文心一言 VS chatgpt (11)-- 算法导论2.3 7题 3.1 4~5题

福大大架构师每日一题

福大大 ChatGPT 文心一言

2023-04-18:ffmpeg中的hw_decode.c的功能是通过使用显卡硬件加速器(如 NVIDIA CUDA、Intel Quick Sync Video 等)对视频进行解码,从而提高解码效

福大大架构师每日一题

golang 音视频 ffmpeg 福大大

Kyligence CTO|消除技术门槛,人人可用的敏捷数据工具

Kyligence

数据分析 指标平台

iOS MachineLearning 系列(2)—— 静态图像分析之矩形识别

珲少

一文掌握 Go fmt 标准库常用方法的使用

陈明勇

Go golang 三周年连更 输入输出 fmt

基于TCP协议的Socket通信

二哈侠

TCP协议 Socket请求 三周年连更

华为云网站安全解决方案:守护您的网站,让安全无忧

YG科技

软件测试/测试开发丨PageObject 设计模式

测试人

软件测试 自动化测试 测试开发 pageobject

开心档之MySQL 序列使用

苹果怎么查看UDID iPhone/iPad查看UDID教程【详解】

雪奈椰子

保姆级教程!如何在 Anolis 8 上构建基于 Nydus 和 Dragonfly 的镜像加速解决方案?

OpenAnolis小助手

Linux 开源 镜像 解决方案 龙蜥社区

【Java技术指南】「Unirest编程专题」一起认识一下一个“灰常”优秀的Http工具,让Http开发变得如此简单

洛神灬殇

Java HTTP 4月日更 Unirest

华为云:网络安全愈发重要,企业该如何保障自身业务安全?

YG科技

如何快速在手机中查看UDID,无需itunes、itools

汇量科技使用倚天710云实例,高效处理大流量广告请求

云布道师

阿里云

一文详解 PoseiSwap,Nautilus Chain 上的首个 DEX

股市老人

一文详解 PoseiSwap,Nautilus Chain 上的首个 DEX

EOSdreamer111

FastAPI 快速开发 Web API 项目: 模板和 Jinja 介绍

宇宙之一粟

Python FastApi 三周年连更 Jinja2

手把手教程 | 5分钟用轻量云主机搭建一个JupyterLab

京东科技开发者

Web 云主机 jupyterlab 企业号 4 月 PK 榜

字节跳动副总裁杨震原:好的AI基础设施,如何激发工程师创造力?

字节跳动技术范儿

机器学习 字节跳动 算法 模型训练 算法工程师

接口测试利器:AREX

AREX 中文社区

测试 自动化测试 接口测试 回归测试

Vue3 使用 Teleport 封装 一个 Dialog

程序员海军

Vue Vue 3 三周年连更

REST vs SOAP:两种 Web 服务协议的分析

Apifox

网络协议 Rest API soap web 服务

SoapUI参数传递操作详解

Liam

Postman 开发工具 接口测试 soapui

回顾2022:Web性能方面有哪些新功能

南城FE

性能优化 前端

Go语言并发编程利器(一):如何正确使用Channel

Jack

HTTP事务的时延

阿泽🧸

三周年连更 HTTP时延

华为云网站安全解决方案:守护企业数字化转型之路,提升业务效率与安全

YG科技

数据库、

跨系统数据一致性问题解决方案汇总

架构精进之路

系统架构 数据一致性 三周年连更

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