装箱百万奖金,第六届全国工业互联网数据创新应用大赛火热报名中! 了解详情
写点什么

Ocado Technology 发布了“Kubermesh”, 一个支持自动配置、采用网状网络的 Kubernetes 集群原型

  • 2017-06-12
  • 本文字数:1936 字

    阅读完需:约 6 分钟

Ocado Technology 团队创造了 Kubermesh ,一个“基于裸机、自我托管、自我恢复、自我配置、采用部分网状网络的 Kubernetes 集群”。Kubermesh 本质上可以被视为一个粘合节点,它将多个技术结合在一起,从而构成了一个容器平台。这个平台由一个使用 OSPF3 路由协议的部分网状网络和一个用 iPXE 启动、自我安装的 Kubernetes 部署组成。该 Kubernetes 部署运行在由 Openstack 管理着的裸机服务器上。

Ocado Technology 在博客上写道,这一项目萌芽于他们团队在白板上进行头脑风暴时提出的一个问题,“如果我们能将我们Customer Fulfilment Center 的数据中心分成更小的节点,会怎样呢?” 他们提到的 Customer Fulfilment Center (CFC)   是一个高度自动化的仓库,在这个仓库储存,挑选,并分发食品杂货送往 Ocado 的客户们。Ocade 的私有 Ocado Smart Platform  CFC 包括了数千个在网格上徘徊的机器人以及把机器人递来的货物按客户订单即时打包的工人。

Kubermesh 部署了一个作为铺垫的局部网格网络,该网络在 IPv6 网络上使用了 OSPF3 路由协议(利用本地链路地址自动配置功能),该路由协议由 Quagga Software Routing Suite 提供。由于目前没有标准供应商支持 IPv4 over IPv6 的网络,他们为 Kubernetes 部署了一个自定义的覆盖虚拟网络。这个覆盖虚拟网络和 CoreOS 的 Flannel 结合起来使用以支持 IP 地址分配。通过 IPv6 上的 iPXE-booting,Kubermesh 可以为网格添加节点,并利用 boot.cfg 来配置节点的基础软件。随后,kubermesh 使用 Kubernetes 孵化器项目 bootkube 来启动一个自托管的 Kubernetes 集群。一旦集群启动,bootkube 会作为一个临时的 Kubernetes 集群控制面板(API 服务器、调度器、控制器管理器),这个临时控制面板会运行足够长的时间,以便 Kubernetes 集群引导一个自托管的控制面板来替代临时控制面板。

据 Ocado Technology Network 表示,使用网格网络,开发者甚至可以移除数据中心、网络、以及仓库周围运行着的各种机器,只留下计算节点和光纤。这些可以自动配置的元素保证了系统的灵活性,这种灵活性可以允许新添加的节点简单的连接到网络。并且,在几分钟时间内,新节点就可以被整合到集群中。Kubernetes 自身将会管理容器的协调,并在个别节点发生失效事件时进行重新调度。

Kubernetes 最初是作为 Code for Life 项目的容器管理系统被引入 Ocado Technology 的。Code for Life 项目是一个非盈利的初创项目,该项目发行免费且开源的游戏,设计这些游戏主要是为了帮助老师讲授计算机课程和帮助小朋友们接触编程。 Rapid Router 作为一款面向小学设计的游戏,在全球已经拥有超过 90,000 名用户,而这一数字还在增加。考虑到 Code for Life 庞大的用户群,为了让游戏流畅运行,容器管理系统的开发必须以能持续处理和管理大型数据集为目标。

Code for Life 的网站和 Rapid Router 已经托管在了支持 Kubernetes 的 Googld Cloud Platform 上。这意味着,当需要一个容器管理系统在云端的虚拟机上运行大量学生编写的代码时,Kubernetes 毫无疑问是最佳的选择。Ocado 的 IT 团队领导 Mike Bryant 曾参与了 Code for Life 这一容器管理系统的开发过程。在开发过程中,Mike Bryant 意识到该系统也有可能被用在云平台之外,比如用于流水线化 Ocado Technology 的数据系统。

我们最大的食品杂货 CFC 在伊利斯(Erith),占地 563000 平方英尺,并且需要 400 这样的节点,它们随机分布在仓库周围,连接在一起形成网络。这样一来,部署在节点上的 app 可以策略性的分布在其它经常与之通信的 app 附近,这样可以得到最快的速度和最佳的性能。一个节点可以是我们仓库内的任何计算设备,包括从专一的服务器或 Intel NUC ,到捡货通道的工作站或用来在头顶显示屏上显示工程相关信息的 PC。

如果 Kubermesh 的原型系统得到了验证,该系统就有可能从根本上完全消除数据中心以及网络路由存在的必要性,大大缩减了当前 OSP 系统的规模,节省了花费在维修保养上的时间,并且降低了成本和能量消耗。同时他们还提议,Kubermesh 节点可以自主的运行仓库中的所有其他元素,从显示屏幕到捡货站(假设所有对应的应用可以在容器内成功运行)。

关于 Kubermesh 项目的其他详细信息可以在 Ocado Technology 官方博客的《使用Kubernetes 和容器创建分布式数据中心结构》这篇博文中找到,Apache 2.0 授权的原型源码可以在 Kubermesh GitHub 的代码仓库中找到。

查看英文原文 Ocado Technology Releases “Kubermesh”, a Prototype Self-Provisioning Mesh Network Kubernetes Cluster


感谢薛命灯对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-06-12 19:001063

评论

发布
暂无评论
发现更多内容

程序员成长第二篇:如何快速入门

石云升

程序员 28天写作 2月春节不断更

怎么和小伙伴语音连麦,你造吗?

anyRTC开发者

ios android WebRTC sdk 语音通话

你需要的Docker知识点都在这里了。

后台技术汇

28天写作 2月春节不断更

webpack | 进阶用法4:如何进行构建速度和体积分析

梁龙先森

大前端 webpack 28天写作 2月春节不断更

非科班Java面试快手三面,如果不是疫情,offer已经到手了

Java架构之路

Java 程序员 架构 面试 编程语言

带你了解TCP/IP,UDP,Socket之间关系

赖猫

socket udp TCP/IP

【经验分享】如何融合CMMI与企业需求,自定义推进数字化转型

嘉为蓝鲸

DevOps 敏捷 持续交付 CMMI 能力成熟度模型

最最新版钱包tok量化区块链挖矿系统源码

luluhulian

【LeetCode】双指针反转字符串

Albert

算法 LeetCode 2月春节不断更

官宣|焱融科技完成1.2亿元A+轮融资

焱融科技

分布式 存储 焱融科技 企业融资 创业公司

深入理解JVM中的类加载机制

Simon郎

JVM

收购环信、因Clubhouse股价飙升30%,

ToB行业头条

解读|2020年CNCF云原生调研报告

焱融科技

容器 云原生 存储 cncf

高并发高性能服务器是如何实现的?

赖猫

c++ 高并发 linux开发 服务器开发 多线程高并发

区块链矿机挖矿游戏开发,区块链矿机游戏开发

v16629866266

盘点软件开发中那些有趣的边际效应

架构精进之路

认知提升 七日更 28天写作 2月春节不断更

资本市场发展趋势学习笔记

JiangX

28天写作

混合云的五个优势

浪潮云

混合云

大厂面试算法到底有多重要?学会这份算法宝典,随便暴打头条面试官!

Java架构之路

Java 程序员 架构 面试 编程语言

腾讯基于 Flink SQL 的功能扩展与深度优化实践

Apache Flink

flink

2天完成17TB数据量迁移,华为云数据库是如何做的?

华为云开发者联盟

数据库 mongodb 大数据 智慧地图 地理信息服务

京东扫描平台EOS—JS扫描落地与实践

京东科技开发者

大前端

DCache 分布式存储系统|Key-Value 缓存模块的创建与使用

TARS基金会

nosql 微服务 MySQL 高可用 分布式数据储存 TARS

android开发实战!面试的时候突然遇到答不上的问题怎么办?Android校招面试指南

欢喜学安卓

android 程序员 面试 移动开发

C/C++后台开发需要点亮哪些技能树||(鹅厂为例) Linux百里

赖猫

c++ Linux 后台开发 linux开发 服务器开发

LeetCode题解:69. x 的平方根,牛顿迭代法+递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

并发队列:ArrayBlockingQueue实际运用场景和原理

叫练

阻塞队列 LinkedBlockingQueue 并发队列 阻塞List ArrayBlockingQueue

KubeEdge@MEC:Kubernetes容器生态与5G的结合

华为云开发者联盟

5G 边缘计算 网络 kubeedge 5G MEC

android开发手册apk!Android开发者跳槽指南终获offer

欢喜学安卓

android 程序员 面试 移动开发

SpringBoot 接口幂等性的实现

xcbeyond

Spring Boot Java、 幂等性 28天写作

备战金三银四,”吊打各厂面试官“ ,为你准备了这份堪称“神作”的Java面试宝典

Java架构之路

Java 程序员 架构 面试 编程语言

Ocado Technology 发布了“Kubermesh”, 一个支持自动配置、采用网状网络的 Kubernetes 集群原型_DevOps_Daniel Bryant_InfoQ精选文章