Notice: Constant WP_DEBUG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 12

Notice: Constant WP_DEBUG_LOG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 13

Notice: Constant WP_DEBUG_DISPLAY already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 14
【转载】那些影响传统PaaS平台结构的容器编排工具 – zoues

LOADING

Follow me

【转载】那些影响传统PaaS平台结构的容器编排工具
五月 10, 2017|DockerPaaS

【转载】那些影响传统PaaS平台结构的容器编排工具

【转载】那些影响传统PaaS平台结构的容器编排工具

PaaS平台的演变

传统PaaS平台在云计算技术的发展中经历了几次演变,我们先来回顾下经典的云平台层次体系的结构。

那些影响传统PaaS平台结构的容器编排工具

传统云计算平台的分层结构

如图所示,在经典的PaaS平台结构中,应用运行在PaaS平台所提供的容器环境中,容器在虚拟机基础上完成了第二层次基础设施资源的划分,容器封装了应用正常运行所需的运行环境和系统。然而这类PaaS平台就如同一个“黑盒”,应用完全脱离了租户的控制进入了完全被托管的状态,这使得开发人员和运维人员对应用和应用运行时的环境掌控力变弱,再加上传统PaaS通常在应用架构选择、支持的环境服务等方面有较强限制,导致此类云平台层次结构运力不足,尤其是在应用出现宕机后尤为凸显。因而在生产环境下又进化出了以IaaS+云平台的分层结构。

那些影响传统PaaS平台结构的容器编排工具

典型的IaaS+云平台

IaaS+云平台的层次结构保证了运维人员对底层环境的掌控,但IaaS层不具备贴近应用的资源调度策略,为了弥补了IaaS平台脱离应用的缺陷,出现了很多高效便捷的虚拟机DevOps工具,以虚拟机镜像为基础可以保证生产环境、测试环境、开发环境上的严格一致。目前基于IaaS的云生态环境已经具有相当高的成熟度。

当然,以上这两种经典的云平台分层结构依然还是目前传统云平台搭建意识里的主流,直到Docker的出现

那些影响传统PaaS平台结构的容器编排工具

基于容器的云平台

Docker的出现为云平台带来了一个新的分层结构:基于容器的云平台。相比经典PaaS平台,基于容器的云平台结构更加开放,可直接基于虚拟机或物理机搭建。基于容器镜像的应用发布流程不仅能覆盖整个应用生命周期,还减少了经典PaaS平台对应用架构、支持的软件环境服务等方面的诸多限制,将更多控制力交还给开发和运维人员。

而影响传统平台PaaS结构的核心便是容器编排

02

容器编排的演变

容器编排支持打包、部署、隔离、服务发现、扩容和滚动更新,已经在影响驱动成熟企业和初创公司采用容器上起到非常重要作用。

在基于容器的云平台中,运用Docker容器至应用的完整生命周期中时,最困难的便是运行微服务应用程序,即如何创建、管理和自动化临时容器集群

解决这一挑战的第一个主要工具是Mesos及它的编排工具Marathon,成熟度最高、时间最久。下一个得到认同的编排工具是Kubernetes(以下简称K8s),应用最广泛,社区支持度最高。之后Docker Swarm也加入了进来,使用覆盖率也很惊喜。当然,目前国内还出现了自研的容器编排Newben,由Ghostcloud精灵云开发

那些影响传统PaaS平台结构的容器编排工具

几种容器编排的对比

事实上,如今K8s因为它的可扩展性已经成为了企业主流。它支持广泛的编程语言、基础设施选项,并获得容器生态系统的巨大支持。它将应用层与基础设施层隔离开来,从而能够跨多个云供应商和基础设施设置,实现真正的可移植性。

03

容器编排K8s和Newben

本文重点介绍在网络、应用迁移、应用快照、模板、负载均衡、弹性伸缩、高可用、CI/CD集成、灰度发布和回滚、镜像集成、日志监控等方面同样优秀的两类容器编排工具Newben和K8s。Newben是Ghostcloud精灵云全自主研发的容器调度引擎,是目前国内唯一自研引擎。(关于Newben的介绍可阅读文章《全自主研发容器调度引擎——Newben》)K8s是目前最主流的容器编排。在此,我们简略地列出了Newben和K8s的部分功能特性,来展示这两种容器调度引擎在网络、应用迁移、负载均衡、弹性伸缩、调度规则等方面的优势。

  • 网络

K8s不支持内置虚拟网络,网络插件选择众多,学习成本更高,但从社区获得的支持也最多。Newben内置支持虚拟网络,支持多子网,支持公有云、主机托管环境、二层和三层网络以及控制网络访问安全。

Newben

K8s

虚拟网络

内置支持,基于Calico并二次开发;性能好,支持公有云和主机托管环境,支持二层和三层网络

无内置支持,可通过选用网络插件支持;

网络插件选择众多,学习成本高,决策困难;

配置复杂,灵活可控性低

多子网和安全组

支持多子网,并可以通过安全策略控制子网访问策略,控制网络访问安全

不支持

  • 应用服务和应用栈

在创建应用服务方面, K8s需要多次执行命令工具的操作模式,Newben则采用向导式创建的方式,且支持应用服务分组创建应用栈。


Newben

K8s

应用服务

向导方式创建,可以一次完成定义CPU、内存、环境变量、存储、健康检查、弹性伸缩、调度等配置工作;也可通过yaml文件创建

可以通过命令行工具创建服务,要同时配置健康检查,弹性伸缩,调度等需要多次执行命令行工具完成,或编写yaml文件实现

应用栈

  • 支持将多个应用服务进行分组以应用栈为单位管理,并可视化呈现服务之间的关系和运行状态;

  • 应用栈可以结合网络子网和安全控制,实现灵活的访问控制

不支持

  • 弹性伸缩

Newben和K8s均可以支持CPU的弹性伸缩。

Newben

K8S

弹性伸缩

  • 支持基于CPU和内存的弹性伸缩,可以适应更多场景;

  • 弹性伸缩数据来源于Newben 根据自身需求定制开发的Monitor

  • 支持基于CPU的弹性伸缩;

  • 数据来源于cAdvisor,整体方案偏重量级,上报性能指标

  • 负载均衡

Newben和K8s均可实现负载均衡和高可用集群。

Newben

K8s

负载均衡

  • 实现负载均衡和高可用集群,通过向导方式创建并呈现负载均衡、高可用集群和应用服务之间的拓扑结构;

可以实现负载均衡和高可用集群,实现封闭,无拓扑结构呈现

  • 调度规则

K8s的调度规则基于标签选择器,而Newben则同时基于标签选择和指定主机名。

Newben

K8s

调度规则

支持基于标签选择器和指定主机名的调度规则;

支持基于标签选择器的调度规则

04

结语

对企业而言,编排工具是容器应用成功的关键,最主流的PaaS解决方案已经拥抱容器,并有新的PaaS 建立在容器编排之上实现管理平台。企业可以选择面向IT运维,部署核心容器编排工具,或面向开发,使用PaaS平台。





阅 读 推 荐


企业为什么要使用基于Docker的PaaS/CaaS平台  

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

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


那些影响传统PaaS平台结构的容器编排工具

no comments
Share