【干货】全自主研发Docker容器调度引擎——Newbon

背景:

      大家所熟知的Docker容器调度引擎包括,K8S, Swarm, Mesos和Rancher,这些调度引擎都是开源的国外引擎,各有各的特点。在同客户和圈内人士沟通中,很多人直言国内容器创业公司大多只是将各种开源组件集成在一起,同质化严重,没有核心竞争力。作为国内第一批的容器创业公司——Ghostcloud精灵云,深知国内需要在容器的诸多领域拥有真正完全可控,同时具有核心竞争力的产品。因此,容器云平台最核心的调度引擎迫切需要一个完全可控,自主的产品,在这种背景下Newbon应运而生。Newbon取自“牛犇”的谐音,意在构建一个稳定的,牢固的容器调度引擎。接下来就简单介绍一下Newbon的实现细节,并通过一系列视频进行功能展示。

组成:

      Newbon包含几个核心部分:

l  
Api-Server : 为UI和第三方集成提供调用接口。

l  
Scheduler : 负责解释定义,收集数据和执行调度。

l  
DNS/ETCD : 负责服务注册,服务发现,订阅和容器主机访问。

l  
Executer :负责执行Server端下发命令。

l  
Monitor : 负责监控主机和容器的各种状态。

l  
Heapster : 负责健康检查。

l  
Calico+ : 经过二次开发的基于Calico的网络插件。

l  
Nginx : 七层负载均衡器。

l  
HAProxy : 四层/七层负载均衡器。

l  
Keepalive : 高可用组件。

典型逻辑结构:

      下面是典型的逻辑结构图:

最上层是高可用集群,中间接负载均衡器,底层接多个应用服务,从这幅图就能看出,Newbon从设计之初就支持高可用,负载均衡和弹性伸缩,以及多服务挂载。

 

接下来我们重点介绍下Newbon中负责解释定义,收集数据和执行调度的核心组件Scheduler。

Scheduler功能包括:

l  
解释服务定义

l  
选择合适的节点创建容器

l  
监控节点和容器运行状态

l  
服务注册和注销

l  
自动扩容和缩容

l  
灰度升级(Rolling Upgrade)

 

解释服务定义:

结合解释服务定义,下面是一个服务示例:

应用支持的扩展配置:

健康检查配置支持(TCP):

健康检查配置支持(Http):

服务配置:

调度配置:

高可用集群:

服务发现,服务注册和注销:

      在容器调度引擎中,这三个过程可以说是最核心的地方。Newbon借鉴了多个调度引擎的优点,使用了ETCD和DNS并结合控制服务器来实现以下功能:

·            
创建服务后自动创建DNS记录用于访问相关容器:

§  
A记录,通过域名访问单个容器和一组容器。

§  
SRV记录,记录容器提供的服务协议、端口、优先级和提供服务的IP列表。

·            
容器状态健康后注册SRV信息:

·        
当容器停止或处于不健康状态时,会注销DNS A记录和SRV信息。

下面就是一个DNS纪录示例:

自动扩容和缩容:

      这一部分主要通过以下方式实现:

Agent
monitor 模块实时监测容器cpu和内存使用情况:

定义性能指标阈值和容器运行上限和下限。

 扩容:

当容器平均性能指标超过阈值一段时间(1分钟)后启动自动扩容,创建更多容器以达到

阀值要求的90%。

当没有主机资源运行新容器时,自动申请新主机(限公有云环境)。

缩容:

 当一段时间(3分钟)负载持续低于阈值80%启动缩容。

优先删除新创建容器和主机,以释放资源和降低运营成本。

 

下面是一个扩容的示意图:

功能展示:

      接下来我们将通过视频的方式给大家展示Newbon所支持的一系列功能,本期重点展示Newbon的自动扩展功能:

https://v.qq.com/x/page/i03670gm0fh.html

 

Q&A:

Q: 既然已经有K8S, Swarm,
Mesos, Rancher等调度引擎,为什么精灵云还要自主研发调度引擎Newbon呢?

A: 调度引擎是容器云平台最核心的部分,开源固然可以快速上手,快速搭建系统,但是任何一个开源系统实际是由一个或多个公司主导的,因此在使用中经常会受制于国外。开源系统由于需求和贡献者多,因此会导致系统异常庞大,企业往往只需要使用20%功能,但是却要去维护80%的其他系统。因此,精灵云从一开始就选择自主研发调度框架,做到完全自主可控,为企业级用户提供更好的服务。

 

Q:
Newbon 跟其他容器调度相比有何优势?

A:
Newbon吸取各调度引擎的长处,可以说是目前国内定制能力最强,支持功能丰富的调度框架,包括在网络、应用迁移、应用快照、模板、负载均衡、弹性伸缩、高可用、CI/CD集成、灰度发布和回滚、镜像集成、日志监控等方面都有着非常大的优势。

 

Q:
Newbon稳定吗?有多少用户在使用?

A:
Newbon虽然是最近才对外公布,但实际是精灵云核心研发团队多年的积累。团队在内核和分布式领域有丰富的经验,主要来自于Veritas, EMC,微软和IBM,平均拥有10年以上分布式系统研发经验,曾负责华为存储软件的OEM工作。Veritas可以说是分布式领域的兵工厂,它的Veritas Cluster
Server是最早的分布式中间件,K8S容器负责人Dawn Chen也曾就职于Veritas。因此,Newbon是集众家之所长,并且在精灵云的公有云上得到了充分的验证,支撑数万用户和数十万的容器调度。Newbon从EcOS 2.0开始内置,目前已经在多家中大型企业得到运用。

时间: 2024-10-28 16:47:50

【干货】全自主研发Docker容器调度引擎——Newbon的相关文章

为什么用Yarn来做Docker容器调度引擎

前言 Mesos 其实我不是非常熟悉,所以有些内容可能会有失偏颇,带有个人喜好.大家也还是需要有自己的鉴别能力 Mesos和Yarn 都非常棒,都是可编程的框架.一个硬件,不能编程,就是死的,一旦可以编程就活了,就可以各种折腾,有各种奇思妙想可以实现,同样的,一个软件,只要是可编程的,基本也就活了,容易形成生态. Yarn VS Mesos 我先说说在做容器调度引擎的时候,为什么选择Yarn而不是Mesos. 可部署性 先说明下,这里探讨的是Yarn或者Mesos集群的部署,不涉其上的应用.Ya

自研容器调度引擎Newben会成为“中国的K8s”?

作者:精灵云 前言: 一个月以前,我们对外详细介绍了内置在精灵云EcOS(Enterprise Container Operation System,企业级容器云平台)中的全自研容器调度框架Newben ,文章刚发出,就有很多人向小GO询问Newben是否会开源的问题.在此,小GO引用精灵云创始人晏东对CSDN的专访回答作为给大家的统一答复:"Newben适用于所有以Docker作为虚拟化引擎的场景,目前主要面向中大型企业,不对外开放代码."也就是说,Newben目前暂不开源,而是内置

阿里自主研发的互动游戏引擎Hilo开源啦!【内有详解】

目前,Hilo已经开源,并入到Hilo Team中.开源地址 https://github.com/hiloteam/Hilo (欢迎Star) Hilo的特点: 极简内核: Hilo核心模块极精简,保留了2D游戏引擎最必要的模块,同时采用模块化管理. 完善接入&扩展: Hilo 支持多种模块范式的包装版本,包括AMD,CMD,Standalone多种方式接入.另外,你可以新增和扩展需要的模块和类型. 多种渲染方式:提供DOM,Canvas,Flash,WebGL等多种渲染方案,可以做到跨全端,

自主研发提供Docker全平台解决方案的“Ghostcloud”,能否在容器市场内后发制

目前 Docker 占据了容器市场超过 70%的市场份额.容器其实就是一个进程,但与普通进程不同的是,它拥有完全独立的运行空间,使各个容器相互不受影响.同时,它可以控制容器的 CPU.内存.IO 等资源使用.理想很丰 满,但一般公司想要把 Docker 技术融入生产环境面临很多挑战:学习成本高,不知道如何对封装进行优化,运维人员短缺--虽然 Docker 可以提升效率,但需要专业团队. Ghostcloud 创始人晏东告诉 36 氪,时速云偏向于私有云,灵雀偏向于 CaaS 服务,DaoClou

Docker容器云在金融行业的应用

作者:精灵云 精灵云 CTO 乔融 Docker容器技术是改变世界的盒子,促进了云计算2.0的快速普及与发展.4月19日~20日,在工业和信息化部指导.中国信息通信研究院主办.云计算开源产业联盟承办的"2017全球云计算开源峰会"上,精灵云CTO乔融在本次峰会的金融行业使用开源论坛带来了以<Docker容器云在金融行业的应用>为主题的演讲,阐述了精灵云运用Docker容器技术在金融领域的实践与成果,并提出了基于"微服务+DevOps+容器云平台"的金融业

【重磅】完美融合Kubernetes,Ghostcloud企业级容器云平台EcOS率先实现双容器调度

前言 给大家报道一个最新重磅消息:最新版Ghostcloud企业级容器云平台EcOS(Enterprise Container Operation System)已完美支持容器市场最主流的调度引擎Kubernetes,并于今日正式上线啦!内置自研容器调度框架Newben和开源引擎Kubernetes,意味着EcOS平台率先实现了双容器调度引擎的融合.(新平台EcOS-Kubernetes现已开放试用申请,请至文末扫码申请.) EcOS平台是Ghostcloud推出的企业级容器云PaaS/CaaS

如何设置Docker容器中Java应用的内存限制

最近在和阿里的一些同事谈起使用Docker部署Java应用的场景,其中一个大家普遍关心的问题就是如何设置容器中JVM的内存限制. 如果使用官方的Java镜像,或者基于Java镜像构建的Docker镜像,都可以通过传递 JAVA_OPTS 环境变量来轻松地设置JVM的内存参数.比如,对于官方Tomcat 镜像,我们可以执行下面命令来启动一个最大内存为512M的tomcat实例 docker run --rm -e JAVA_OPTS='-Xmx512m' tomcat:8 在日志中,我们可以清楚地

宝德网络:走自主研发游戏之路

随着中国科技水平的飞速发展,游戏领域的研发实力也在不断增强,"自主研发"已经成为抗衡国外游戏的最佳利器.这其中除了经验.技术的积累性优势,还有背靠巨大市场的资源.尽快找到符合市场文化特色的产品是整个行业长期努力的方向. 作为一家中国土生土长的网游公司,深圳宝德网络技术有限公司(以下简称"宝德网络")把从自主研发网游到运营网游能碰到的所有事情都经历了一遍.凭借着自主研发的军事类题材游戏,成为网络游戏界的"闪光点". 选择与众不同的游戏题材 宝德网络

Docker Swarm:经济高效的容器调度

本文讲的是Docker Swarm:经济高效的容器调度[编者的话]本文探讨了几种容器调度策略,并以内存约束为例,讨论了如何利用Docker Swarm,通过资源约束实现容器的合理调度.其中,对容器资源的约束,包括硬约束和软约束,硬约束是指内存资源的实际限制条件,而软约束则是当服务器实际内存资源有足余时,容器可自由使用,一旦内存资源有所紧缺,则约束开始生效.硬约束和软约束的结合使用,可以在减少资源浪费的同时保证服务的稳定性. 我们每天在数百台服务器上运行成百上千个容器,面临的最大一个挑战是怎样高效