OpenStack VS Kubernetes,谁是你心中的王者?

  • 时间:
  • 浏览:0

通过对某种系统的出身,技术架构,使用场景和社区对比,希望能在选者上给读者但会 有益的借鉴。

4. Etcd:保存系统的配置信息和各种资源的情况表信息。

自己面OpenStack的一个劲出现大大加速了IT架构演进系统线程池池。社区对于OpenStack开发流程的把控是十分有效的,无论是代码质量保证,还是测试如单元测试和集成测试完正都是值得借鉴的。

docker的启动强度快,占用资源少,因为在于技术架构:

Kubernetes是Google在2014年发布的俩个多开源项目。Google开发了俩个多叫Brog的系统来调度内内外部数量庞大的容器和工作负载。在积累了多年经验完后 ,Google决定重写这种 容器管理,并将其贡献到开源社区,让全世界可不可以 受益。在2014年第俩个多版本发布以来,Kubernetes太快了 受到开源社区的的追捧,目前Kubernetes但会 成为发展最快,市场占有率最高的容器编排引擎。截止到现在,Kubernetes的最新版本是1.11版本。

OpenStack的服务分为核心功能和非核心功能。核心功能是指运行OpenStack系统还要的功能,其中核心功能有:

Kubernetes:

虚拟化缺点:资源占用多,虚拟化技术某种占用资源,宿主机性能有10%左右的消耗。

OpenStack:

使用场景

原文发布时间为:2018-09-19

OpenStack:

OpenStack是开源项目的代表作之一。

Kubernetes:

出身对比

2. kube-proxy :访问控制。

当下云计算的领域里热度最高的俩个多项目,无疑是OpenStack和Kubernetes。但会 云计算不算俩个多风起云涌的江湖,毫不夸张的说OpenStack和Kubernetes所以我江湖里的泰山北斗。OpenStack就像是少林,基础扎实、沉稳厚重,而Kubernetes所以我武当,轻巧空灵、飘逸精妙。使用过这某种系统的人都应该有原本的感受,OpenStack出身于虚拟化技术,稳定但强度慢,Kubernetes则来自于容器技术,快速但有局限。某种不同的技术就决定了有着不同的人生轨迹。这麼 究竟两者有着要怎样的际遇呢?大伙儿儿分析分析。

Kubernetes同样遵循标准化API接口。

5. Pod网络:可不可以 是macvlan、flannel、weave、calico等其中的某种。

Kubernetes API是集群系统中的重要组成次责,Kubernetes中各种资源(对象)的数据通过该API接口被提交到后端的持久化存储(etcd)中,Kubernetes集群中的各部件之间通过该API接口实现解耦合,同去集群中俩个多重要且便捷的管理工具kubectl也是通过访问该API接口实现其强大的管理功能的。系统中大多数情况表下,API定义和实现都符合标准的HTTP REST格式,比如通过标准的HTTP动词(POST、PUT、GET、DELETE)来完成对相关资源对象的查询、创建、修改、删除等操作。但同去Kubernetes 也为但会 非标准的REST行为实现了附加的API接口,累似 于Watch某个资源的变化、进入容器执行某个操作等。

场景二:还要反复地创建和销毁哪几个服务的运行环境。docker的优势就在于启动快速,消耗资源小。所以在还要频繁创建和销毁的场景中,Kubernetes是俩个多不错的选者。

Kubernetes:

对于开源项目来说,社区火热程度代表着生命力和潜力。要怎样判断俩个多项目的未来发展,关注社区肯定是最基本的要求。

从长远来看,两者之间的融合趋势不可处理。

在Master节点上运行的服务有:

场景一:安全和隔离。OpenStack适用于搭建私有云以及基于私有云的使用的场景。OpenStack底层使用了虚拟化技术,其基因中完正都是着隔离性好,稳定,部署灵活等特点。在OpenStack的成功案例中,云桌面是典型的例子。有不少的企业都但会 将自己的生产环境搬到云端,累似 于企业上云,工作环境所以我使用云桌面的形式。第一是降低了设备成本,上云完后 是每人一台主机,到现在几十自己使用一台服务器,但会 考虑cpu,内存使用率,成本肯定降下来了。第二是安全,所有的数据都完正都是存储在身边,在但会 安全系数高的行业中尤为重要。OpenStack一个劲受到金融行业的青睐,这里少不了看中OpenStack安全的形态学 。

场景一:Kubernetes适用于业务变化快,业务量未知的静态使用场景。所谓静态使用场景是存在其创建的容器中不必实时产生数据的场景。累似 于:网站架构,一次部署,长时间使用。不为什么我么我是遇到但会 线上业务量不选者的场景,Kubernetes可不可以 动态扩展,灵活伸缩,从5W的并发量到10W的并发量,完正可不可以 秒级处理。

OpenStack从第俩个多版本随后 随后 随后 随后 开始到现在的R版本的开发过程,为探索开源生态交出一份高分数的答卷,其生态环境做的但会 很完善,运作模式可不可以 当做但会 开源项目的典范。最明显的标志是每个发行版本的代码贡献量。代码的贡献量是衡量某个企业实力的重要标准,代表开源社区语句语权,更代表着为自身争取权益的能力。所以拥抱OpenStack的企业花费人力物力为什么我么我区代码做出贡献。

OpenStack:

OpenStack:

虚拟化优点:隔离性强,所有的虚拟机完正都是自己的协议栈,各个虚拟机底层相互隔离。

Kubernetes:docker

场景四:动态数据场景。即不还要反复地创建和销毁哪几个服务的运行环境。虚拟机优势在于稳定,这麼 OpenStack优势也在于运行稳定的项目。

Kubernetes社区起步晚于OpenStack,目前尚这麼 OpenStack的火热,但会 Kubernetes在中国开发中的普及度还是很高的。Kubernetes中文社区为国内的爱好者提供了教程,中文文档,安装教程等,大大减少了国内用户的开发使用难度。

在“为哪几个选者OpenStack”的用户调查中得出俩个多比例很高的结果是:开放平台和标准化的API。OpenStack贯彻松耦解耦的思想,各个服务之间使用标准的API接口调用,但会 哪几个接口是可不可以 开发给非OpenStack系统线程池池去调用。

1. 消息总线 AMQP

同样以创建俩个多服务的土办法来解析整个系统的运作流程。Kubernetes 客户端发送创建请求到系统,API server接收到请求,并通知controller创建俩个多deployment资源,controller负责具体的创建过程,调用Scheduler选者哪个主机创建,但会 将请求发往Node节点,Node节点上的kubelet接收到请求,创建具体的docker。

本文作者:李金葵

容器优点:启动快,资源占用小,移植性好

2. Docker Plugin for Heat

OpenStack采用开源技术,处理重好友克隆造轮子,这对团队的技术选者有着借鉴意义。

3. Magnum

Kubernetes:

1. Docker Driver for Nova

3. WSGI Web服务器网管接口

1. kubelet :接收Master节点发来的创建请求信息,并向Master报告运行情况表。

OpenStack作为俩个多开源的云计算平台,利用虚拟化技术和底层存储服务,提供了可扩展,灵活,适应性强的云计算服务。虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可不可以 跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO硬件资源,但逻辑上虚拟机之间是相互隔离的。宿主机一般使用hypervisor系统线程池池实现硬件资源虚拟化,并提供给客户机使用。如下图所示是某种虚拟化的架构。

OpenStack来部署Kubernetes是另某种融合的土办法,所以公司但会 实现将 Kubernetes部署到OpenStack中。反过来使用docker来部署OpenStack的服务也是俩个多很成功的部署土办法。在还要频繁部署OpenStack环境的场景下,docker可不可以 做到分钟级别的部署实施,大大减少了部署的困难度和耗时。

场景五:微服务架构和API管理。服务拆分来抽象不同系统的权限控制和任务,以方便业务开发人员通过服务组合快速的创建企业应用。有的企业在这麼 对应的管理平台完后 就但会 将应用拆分成所以服务,要怎样部署哪几个微服务和进行API权限控制,则成了还要处理的现象,而Kubernetes代表的PaaS则是理想的选者。

场景四:应用云化。将已有应用、要新开发的应用打造成云原生应用,发挥云平台的可扩展、弹性、高可用等形态学 ,并借助PaaS层提供的API实现更高级的形态学 ,比如自动恢复、定制化的弹性伸缩等。

2. ORM模型数据库 SQLalchemy

融合

觉得说OpenStack和Kubernetes是云计算领域里俩个多领导者,这麼 两者一定是水火不容吗?觉得恰恰相反,两者一个劲积极的相互融合当中。OpenStack中可不可以 集成Docker,目前有某种方案:

2010年7月,RackSpace公司和美国国家航空航天局NASA协作,分别贡献出了RackSpack云文件平台代码和NASA平台代码,发布OpenStack的第俩个多版本Austin。2010的Rackspace是美国第二大云计算厂商,但规模上可不可以 占到亚马逊的5%。只依靠内内外部的力量来超越但会 追赶亚马逊不大但会 ,这家公司就把自己的项目开源了,也所以我随后 的 OpenStack 的存储源码(swift)。与此同去NASA也对自己使用的 Eucalyptus 云计算管理平台很不爽。NASA想给Eucalyptus开源版本贡献,结果Eucalyptus不接受。当时NASA 的俩个开发人员,用了俩个多星期时间拿Python做出来一套原型,结果虚拟机在这上面运行的很成功,这所以我Nova(计算源码)的起源。Austin上可不可以 swift和Nova这种 个多项目,即目前的对象存储和计算服务。此后OpenStack相当于保持着每5天发布一次版本的频率,截止到目前最新的版本是Rocky。在最新的版本中项目但会 达到1000多个。

每俩个多虚拟机都拥有自己的内核和文件系统,完正部都是俩个多独立的操作系统。而上图是某种虚拟化土办法中的其中某种:半虚拟化——KVM。在目前的环境中,KVM虚拟化技术是使用率最高的技术。

如下图的构成:

总结

3. Controller Manager:管理系统中各种资源,保证资源存在预期的情况表。

4. Eventlet 协程

1. API Server:提供Restful api。各种客户端工具但会 但会 组件可不可以 调用其完成资源调用。

具体到OpenStack所以我Resutful(表述性情况表转移)和RPC(远程过程调用)。服务与服务之间使用Restful API通信,最大程度的减少了服务之间的依赖。累似 于创建虚拟机时,nova服务要调用glance服务,要调用neutron服务,哪几个完正都是通过Restful api 来完成的。服务内内外部的模块之间的调用使用了RPC,增加了横向扩展能力。累似 于nova-api接收到创建虚拟机的请求,要先后调用nova-scheduler 选定创建虚拟机的主机,nova-compte完成虚拟机创建的具体工作。此外,opnestack用到的通用技术还有:

OpenStack是定存在laaS平台的项目,Kubernetes是定存在PaaS平台的项目,两者在自己的领域中但会 做的很好了。但会 说OpenStack不如Kubernetes灵活,这麼 同样Kubernetes不如OpenStack沉稳。就像说武当功夫基础肯定强不过少林,而少林拳脚这麼 武当功夫将讲究悟性。事实上根据业务需求,懂得灵活使用这某种不同风格的系统才是制胜之道。

场景二:提供基础设施。OpenStack是定存在laas平台的项目,其优点是可不可以 提供虚拟机这种 很底层的设施。但会 在业务场景中很依赖虚拟机,累似 于编译内核,但会 驱动开发等哪几个场景,这麼 OpenStack是很好的选者。

Node节点的服务:

OpenStack:虚拟化

场景三:存储需求。存储是OpenStack原本优势所在。OpenStack第俩个多版本的项目组成所以我存储和计算,在后期不断的开发中,存储作为俩个多重要的功能一个劲不断的完善和创新。如cinder块存储,ceph共享存储能。在存储需求很大的场景下,OpenStack可不可以 提供高效,安全的存储方案,这也是为哪几个电信行业看好OpenStack的俩个多因为。

本文来自云栖社区协作伙伴“SDNLAB”,了解相关信息可不可以 关注“SDNLAB”。

社区对比

Kubernetes是容器管理编排引擎,这麼 底层实现自然是容器技术。容器是某种轻量级、可移植、自富含的软件打包技术,打包的应用系统线程池池可不可以 在几乎任何地方以相同的土办法运行。以容器典型代表docker为例,docker起源于2013年3月,是基于LXC为基础构建的容器引擎,通过namespace和cgourp实现了资源隔离和调配,使用分层存储来构建镜像。它基于Google公司推出的Go语言实现。docker相比KVM虚拟化技术最明显的特点所以我启动快,资源占用小。虚拟化启动虚拟机是分钟级别的,而docker是秒级别的。如下是docker的架构图。

Kubernetes版本发布表:

Kubernetes的思想是尽量保证用户的理想情况表。通俗来说所以我用户创建了俩个容器,Kubernetes要保证这种 个多容器的生命,时时刻刻完正都是健康的俩个多容器,受到断电等故障的情况表可不可以 及时补上。Kubernetes是由Master和Node组成,Master是大脑,Node是计算节点。

其工作模式如下:

场景三:还要业务模块化和可伸缩性:容器可不可以 很容易地将应用系统线程池池的功能分解为单个组件,符合微服务架构的设计模式。

架构对比

俩个多操作系统分为内核+文件系统。容器技术所以我使用宿主机的内核系统添加自身的文件系统。运行容器时是在使用宿主机的内核情况表下加载文件系统,精简的文件系统可不可以 小到1000MB以内,所以比虚拟机自然要快所以。可不可以 将容器看作是在内核上运行的独立代码单元,它们非常轻。但会 占用的资源也少。

2. Scheduler:调度服务,决定将容器创建在哪个Node上。

容器缺点:隔离性不好,共用宿主机的内核,底层可不可以 访问。依赖宿主机内核所以容器的系统选者有限制。