新闻动态

开源也分阵营?OpenStack拥抱Kubernetes

2019-04-19 12:15:59

        作为第一个开源的云技术项目,聚光灯下的OpenStack一路走来受到了成千上万家云计算公司的追捧,并且在中国的私有云市场占据了主导地位。然而,以AWS、Azure、GCP等CSP为代表的企业以自研的方式探索出了另一条路,加之Kubernetes等技术理念的兴起,一些人开始觉得OpenStack不是那么必要了。

61亿美元,这是2018年OpenStack的商业市场规模(IDC数据),自2010年面世以来,OpenStack已成为最受关注的开源技术之一,在中国市场更是推动了云计算产业的高速发展。去年OpenStack的代码修改次数达到了7万次,全球达到这个数量级的修改规模的只有三个项目:Linux Kernel、Chromium和OpenStack。作为全球最大的三个(开源)项目之一, OpenStack已存在了十年之久。

目前,在OpenStack云平台上运行的计算核心或CPU规模已达到千万级,像雅虎内部运行的OpenStack云平台服务器内核规模可以达到400万,拥有大型强子对撞机的欧洲核子研究组织(CERN)也在OpenStack平台上运行着各种物理实验和数据分析及处理工程。同时,在OpenStack项目下(如Cyborg)也有为GPU和FPGA等加速资源提供的通用管理框架,帮助用户在自己的云环境中部署机器学习项目。

青云QingCloud应用及容器平台研发总监周小四表示,Kubernetes与OpenStack并不是一个层级的东西,但通过Kubernetes式的交付能否绕过OpenStack在底层的支撑,间接完成“替代”呢?首先要知道,Kubernetes的后台很强大,其是源自于Google内部的BORG,BORG在Google内部运行了差不多20年。Google几乎所有系统都跑在BORG的调度系统上。Kubernetes是脱胎于BORD系统,理念和架构都得到了验证。Google、IBM等厂商让大家相信K8S的架构是优越的,里面有很多理念是其他容器平台没有的,因为它早就已经成熟了。

周小四谈到,大厂商的支持使得Kubernetes的生态是足够强的,如果哪一天说Go语言是生态最完善的语言,这时候要找学Java的人是很痛苦的,因为没有人学Java了,这是生态的力量。K8S生态强大且迭代速度快。像Mesos就存在这个问题,它没有社区、没有反馈。他们最大的企业用户印象中是苹果,他们自己定制化的,定制化后改的东西没有回馈到社区。

“就如Linux Kernel是内核,上面需要Linux发行版,比如CentOS、Ubuntu等,也可以把Kubernetes当成分布式操作系统的内核,需要在上面做很多功能。与之相比,OpenStack是另一码事,OpenStack是以前的IaaS,是虚机Base的。”周小四说。

但Kubernetes和Linux Kernel有一定的区别,用户没法直接使用Linux Kernel,一定是使用发行版。Kubernetes不一样,用户可以直接使用,它把核心的功能(容器调度、管理)都帮用户完成了,有了完整的API。不过这样做的用户体验不好,并且除了调度、编排外没有其他的功能。

周小四称,Kubernetes可以在裸机上跑,可以在物理机上跑,它可以纳管物理机的资源。在企业里,倾向于把自己的生产环境落地到物理机上。那么Kubernetes跟虚机有什么关系?Kubernetes本身不管下面是什么东西,无论是虚机还是物理机,它看到的就是一个节点,有IP地址就够了,可以在上面运行管理它,甚至可以打标签。K8S本身是可以部署在虚机上的,可以部署在OpenStack的虚机上,也可以部署在物理机上。

由此,就回到了最初讨论的问题,Kubernetes对OpenStack是否是威胁?一项数据显示,多数用户都会在OpenStack云上运行Kubernetes,而OpenStack基金会也看到了这一趋势,他们配备了专人负责与Kubernetes有关的上游工作,例如去年做的最重要的事情之一,就是组织与Kubernetes领域CSP相关的活动。

Kubernetes和底层的基础设施之间有着紧密的联系,它可以跑在不同的基础设施上。但是,就像周小四所说的,Kubernetes在和底层基础设施进行对接时,没有统一的标准,意味着在实际使用过程中,在不同用户、不同使用条件下的体验是不同的。因此,在OpenStack和Kubernetes之间实现统一和标准化,提供更好的测试环境,这是需要OpenStack基金会需要做的事情。

再广泛使用的技术架构都有过时的那一天,只有主要改变才能继续繁荣下去。