授权协议: Apache
开发语言: Google Go
操作系统: 跨平台
收录时间: 2019-05-12
提 交 者: 红薯

Kraken 是 Uber 开源的点对点(P2P)Docker 容器仓库。Kraken 旨在为大规模系统提供 Docker 镜像服务,解决跨区域支持、性能瓶颈和混合云环境所面临的挑战。

Kraken 大致基于BitTorrent 协议,与 Docker registry API 兼容,并提供可配置的存储后端,诸如S3HDFS等。Kraken 最初于 2018 年初在优步内部开始部署,随后向开源社区公开。

在容器中运行的Docker 镜像是由镜像层组成的,这些层包含了相对之前的层所发生的变更,并与镜像文件和可执行文件的二进制大对象(blob)相关联。Docker 容器仓库是服务端应用,用于存储和分发镜像层和镜像 blob。Docker 在Docker Hub 提供了免费的容器仓库,另外还提供了商业版本的容器仓库。除 Docker 外,还诞生了很多其它容器仓库以满足各种特殊需求,例如私有托管或将 IPFS 实现为存储后端

优步在一个混合云环境中运行自己的大规模分布式集群。 尽管优步努力通过镜像缓存和数据库分片来提高性能,但 Docker 仓库还是无法满足其环境下不断增长的需求,最终优步团队选择构建了自己的解决方案

Kraken 在优步部署以来,每天能支持超过 100 万个 blob。 在优步的生产高峰时期,Kraken 可以在 30 秒内分发多达 2 万个 blob,每个 blob 的大小从 100MB 到 1GB 不等。 根据Kraken 文档介绍,Kraken 能够在每个主机上以高于下载速度上限达 50%的速度分发 Docker 镜像。此外,集群大小和镜像大小都对下载速度没有显著影响。Kraken未来的改进将集中在提升大镜像性能、安全性改进和支持 Docker 标记转换等方面。

Kraken 的优秀架构是优步得以实现可扩展且高度可用的容器仓库的关键所在。该设计的基础是一个定制的 P2P 网络,其中包含数量有限的主机,这些主机将内容分发(seed)到代理网络上。网络中的代理形成具有高连通性和小直径的伪随机规则图,这是提升系统下载速度的重要环节。代理接受来自源的内容,源则在后端存储镜像 blob,并与网络中的端点连接,返回 docker 所请求的镜像。

优步 Kraken 架构(图片来自 Kraken README)

Kraken 最初是使用 BitTorrent 构建的,但 Kraken 与 BT 网络面临的挑战差异导致 Kraken 团队开始构建自己的 P2P 驱动。但该团队也在积极审查 Kraken 协议,以便使其再次与 BitTorrent 实现兼容。

介绍内容来自 InfoQ

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Kraken 的相关资讯

还没有任何资讯

Kraken 的相关博客

GitHub - xxjwxc/uber_go_guide_cn: Uber Go 语言编码规范中文版. The Uber Go Style Guide .

uber-go/guide 的中文翻译 English Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开...

Uber的Ringpop和Riak

Uber是最流行的按需用车服务商,他们的创新远不止这些,在生活方式和物流等方面有着快速的进步,最近他们的架构师分享了一些最...

Uber Hire Freeze了

LintCode 前方线报! 据Blind上内部人士透露 Uber Hiring Freeze 了 刚通知面试的、即将面试的 都将取消,也不会有offer发出 ...

Uber 面经

https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=446237&extra=page%3D2%26filter%3Dsortid%26sortid%3D311%...

披露Uber性骚扰问题的前工程师与Uber达成和解协议

Susan Fowler 北京时间9月9日上午消息,前Uber工程师苏珊·福勒(Susan Fowler)曾发博文披露这家网约车公司内部存在的性骚扰...

Uber Go 语言编码规范

Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Goph...

Uber Go 语言编程规范

Uber Go 语言编程规范 相信很多人前两天都看到 Uber 在 github 上面开源的 Go 语言编程规范了,原文在这里:https://github....

Uber Go 语言编码规范

Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Goph...

Kraken 的相关问答

还没有任何问答,马上提问

评论 (2)

加载中
国内运营商多搞了一层nat, 这个P2P能搞的定么?
2019/05/20 11:47
回复
举报
good
2019/05/18 22:12
回复
举报
更多评论
2 评论
21 收藏
分享
返回顶部
顶部