《企业级容器云架构开发指南》—2.2.2 微服务的特性
668
2022-05-29
1.4.3 Kubernetes & Mesos新秀
首先,我们来说说微服务架构之王——Kubernetes。
Kubernetes是目前PaaS领域里影响最大、最活跃的开源项目。用过Kubernetes的人都会有一个很深的体会:我们日常应用的设计、部署、扩容等环节,在Kubernetes里都能得到很好的支持。
Kubernetes中最重要的一个概念是Service,这实际上是微服务架构理念,Service就是一个微服务,背后对应一组从容器方式运行的程序实例,具备弹性扩容和自动故障恢复的能力。在后面的章节中我们会对Kubernetes进行深入的介绍和分析,因此这里就不做过多的介绍。
图1-11体现了Kubernetes微服务架构平台的核心思想。
图1-11 容器化PaaS平台——Kubernetes
Kubernetes第一次将Service的高度提升到超过Machine的地位,我们不再关注应用部署的细节,只要规划好系统是由多少种不同的Service所组成的,每种Service需要部署多少个容器(Pod)实例才能满足性能要求,其他的就交给Kubernetes引擎了,它会根据当前集群资源的使用情况给出最佳的调度方案,并且自动完成容器实例的创建和部署过程,我们无须再花费脑力进行规划。
Kubernetes的另外一大核心设计思想和优势是“高度自动化”。在Kubernetes的世界里,资源调度是自动化的,程序部署是自动化的,监控是自动化的,故障恢复是自动化的,服务平滑升级只要一键,服务扩容也只要一键,当前Kubernetes 1.5甚至已经初步实现了服务扩缩容的自动化。越深入学习和了解Kubernetes,你就越发地惊叹谷歌惊为天人的巨大创造力。
其次,我们谈谈号称“数据中心操作系统”的Mesos,如图1-12所示。
图1-12 容器化PaaS平台——Mesos
从严格意义上说,Mesos其实不属于一个完整的PaaS平台,而是一个先进的资源分配和任务调度系统。但考虑到资源管理也是PaaS的基本功能之一,并且很多通用应用也都已经能够在Mesos上安装并运行,所以我们也将其归到PaaS平台进行介绍。
Mesos最初并不是针对容器来进行开发的,而是想对开源的大数据管理平台Hadoop进行资源的管控和调度,从而设计和研发的一个开源项目。最早出自加州大学伯克利分校。
Mesos的设计理念分两层:下层是物理机器,组成资源池;上层是称为Framework的应用框架,每一个应用必须针对Mesos的Framework开发框架做定制化的开发后才能在Mesos上运行。为了支持Docker容器,Mesos后来提供了Marathon这个Framework。但Marathon并不是一个完整的微服务架构平台,缺乏负载均衡器、DNS等必需的组件。
Mesos的稳定性和健壮性在业界是比较认可的。例如,Twitter、MBNB的数据中心都有由几千台机器组成的一个大的Mesos平台,现在也有很多的公司以“Mesos+Marathon”为技术平台来搭建他们的容器化运行环境。Mesos提出一个流行概念——DCOS,即把Mesos当成数据中心的一个操作系统,负责统一调度数据中心的每台物理机,其上则运行各种大数据系统,这样可以确保数据中心的物理资源得到更充分的利用。
Mesos和Kubernetes这两个平台是可以完全融合在一起的,因为Kubernetes的重点是实现容器化应用的支撑和运行,而Mesos负责底层资源的分配和管控,相较于Mesos而言,Kubernetes没有更细致的底层资源管控层,所以Kubernetes和Mesos之间的调度没有冲突,完全可以融合在一起实现整个资源调度的平台。
具体的做法是Kubernetes可以作为一个Framework运行在Mesos之上,替换原来的Marathon实现容器化应用的支撑,而底层的资源则完全交给Mesos来负责管控和统一调度。实际上,Mesos中运行Kubernetes的方案就是采用了这个思路。
那么,Kubernetes是否可以替代Mesos呢?
这个问题目前还没有清晰的答案,但我们看到,Kubernetes除了继续完善微服务架构的高级功能之外,也开始进入任务调度的新领地。从本质上来说,任务调度系统的设计和开发难度要远远小于微服务架构系统,如果Kubernetes想往这方面深入发展,凭借谷歌的领导力和实力,有朝一日超越Mesos也不是不可能的事情。
最后,我们来简单谈谈PaaS与Iaas融合的问题。
OpenStack原来是Iaas平台系统,但是随着容器技术的发展,OpenStack也开始支持Docker。最近由谷歌牵头发起的Magnum子项目的目标是在OpenStack上直接支持容器,当然其主要目的是支持自家的Kubernetes平台,这样一来,既提升了 OpenStack的应用场景,又借着OpenStack这艘大船,进一步扩展了Kubernetes的地盘,是一箭双雕的好事。
未来基于开源体系搭建的私有云(行业云)的技术栈目前看来非常清晰了,底层的IaaS平台可以用OpenStack来实现主机、存储、网络的虚拟化和集中管控,上层则搭建基于容器化的新一代PaaS平台(Kubernetes、Mesos等)来支撑上层应用,再辅以一些自动化运维工具和定制开发的Web管理系统,即可形成一套低成本同时又具备技术领先性的私有云。
在后面的章节中,我们将具体聊一聊微服务架构、DevOps、Docker、Kubernetes、Mesos,以及企业级容器云在电信行业的应用实践。
OpenStack 云计算
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。