容器技术发展现状与展望
一、容器技术发展现状容器技术主要可以分为容器运行技术和容器编排技术。其中:容器运行技术主要包括Docker和rkt等;容器编排技术主要包括Kubernetes、Meso...
一、容器技术发展现状
容器技术主要可以分为容器运行技术和容器编排技术。其中:容器运行技术主要包括Docker和rkt等;容器编排技术主要包括Kubernetes、Mesos和Swarm等。
1. 容器技术Docker
1) Docker简介
Docker起源于2010 年创业的一家叫作 dotCloud 的美国公司,dotCloud 早期是基于LXC技术的PaaS平台,它的理念是提供跨底层IaaS 云、支持多种开发语言的开发云平台。但随着越来越多的公有云服务商进入,dotCloud 的理念很难依靠一家公司专有的技术实现。于是dotCloud 的创始人在 LXC 的基础上,对容器技术进行了简化和标准化,命名为 Docker。因PaaS市场发展缓慢,创办人Solomon Hykes 决定放手一搏,于2013年3月将Docker项目开源同时推出了开放容器项目(OCP),Docker 和 Docker 开源社区随后迅速火起来。2013 年 10 月 29 日,dotCloud 公司更名为 Docker 公司。目前,Docker已经成为发展最快的容器技术。
2) Docker近期重大里程碑事件
1) 2017年10月,在DockerCon 2017欧洲大会上,Docker宣布将在Docker Platform和Moby Project中集成Kubernetes。下一版本的Docker EE(即Docker企业版本,Docker Enterprise Edition)将支持用户在同一集群中运行Swarm和Kubernetes工作负载。作为“企业级”的容器平台,Docker EE通过私有注册及更多的安全特性,提供了一种集中化控制平台和软件供应链管理。Docker EE很快将会支持Swarm和Kubernetes编排器共处于同一Linux集群上。
2) 2018年5月,Docker最近发布了Docker企业版的2.0版,主打可以跨OS、跨云的企业级容器管理平台,也强调可以通过Kubernetes来管理跨云容器调度。Docker 在旧金山的 DockerCon 上发布 Dokcer 企业版新功能——联合应用程序管理(federated application management)。Docker 首席产品官 Scott Johnston 表示,Docker 企业版(Dokcer EE) 新的联合应用程序管理功能可帮助操作人员管理多个集群,无论这些集群是在本地、云上还是跨不同的公有云。
3) Docker发展态势
历经5年发展,Docker公司揭露了今年最新的Docker年度数据报告,从2013年3月PyCon大会上,Docker首度亮相之后,至今在Docker上的容器镜像下载次数已经超过了370亿次,容器化的应用有高达350万个,目前在LinkedIn网站上的Docker相关职缺也有15,000个。全球活跃的Docker使用者社群已有200多个,包括台湾也有。全球使用企业版Docker EE的企业顾客目前则约有450家。
而过去一年,Docker功能的进展不多,主要有拥抱Kubernetes,在Docker产品中可以和Swarm并用。其次最重要的新功能是增加了RBAC角色存取控管机制,这也是企业最想要的安全机制。
图1:Docker 社区提交次数占比(按公司)
表1:Docker 社区代码行数(按公司)
2. 容器编排工具Kubernetes
1) Kubernetes简介
Kubernetes 是谷歌严格保守秘密十年的秘密武器——Borg的一个开源版本。Borg是谷歌一个久负盛名的内部使用的大规模集群管理系统,它基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率最大化。十几年来,谷歌一直通过Borg系统管理着数量庞大的应用程序集群,但外界一直无法了解关于它的更多信息。直到2015年4月,传闻许久的Borg论文伴随Kubernetes的高调宣传被谷歌首次公开,大家才得以了解它的更多内幕。正是由于站在Borg这个前辈的肩膀上,吸取了Borg过去十年间的经验与教训,所以Kubernetes一经开源就一鸣惊人,并迅速称霸了容器技术领域。
2) CNCF简介
CNCF是隶属于Linux 基金会的开源组织,全称Cloud Native Computing Foundation(CNCF)云原生计算基金会。CNCF基金会倡导合作并且中立,汇集了该行业的顶级开发人员、终端用户和供应商——包括全球主要的公有云提供商和许多领先的私有云公司。CNCF基金会在开源领域的影响力举足轻重,目前拥有1个毕业项目Kubernetes和16个孵化项目,多达230个成员组织,23228名活跃贡献者。国内外厂商如谷歌、亚马逊、微软、思科、华为、阿里巴巴、腾讯等都已经纷纷加入了该组织。该基金会旨在通过一系列的高质量的开源项目,为基于容器的微服务架构,构建一个可持续发展的生态系统。其中,CKA是CNCF云原生基金会和Linux 基金会官方推出的Kubernetes管理员认证,也是目前官方唯一的云原生认证。下图为CNCF毕业项目、孵化项目、沙盒项目列表:
图2:CNCF托管项目目录
3) Kubernetes近期重大里程碑事件
1) 2017 年 8 月,亚马逊网络服务公司(AWS)为了在其市场领先的公共云中加快云原生技术的开发和部署的目标,以铂金会员身份加入了云原生计算基金会(CNCF)。
2) 2017 年 10 月 15 日,杭州,才云科技(Caicloud)、CNCF 与“K8sMeetup 中国社区”联合主办了聚焦 Kubernetes 中国行业应用与技术落地的 KEUC 2017- Kubernetes 中国用户大会。
3) 2017年12月,开源机器学习新项目Kubeflow。Kubeflow为Kubernetes集群用户部署机器学习带来了可组合的,更易于使用的堆栈,并提供了更多的控制和可移植性,而不仅仅是TensorFlow。Kubeflow是一个使Kubernetes上的机器学习变得简单,便携和可扩展的新项目。Kubeflow能够运行在可部署Kubernetes的任何环境中。Kubeflow不是重新创建其他服务,而是为Kubernetes用户提供最佳解决方案。
4) 2018年3月,Kubernetes在2018年年内的第一个版本1.10版已经正式发布。此次新版本的推出不断提升Kubernetes的成熟度、可扩展性与可插入性。本次最新版本提升了三大关键性功能的稳定度,分别为存储、安全与网络。
5) 2018年3月,CNCF技术监督委员会(简称TOC)通过投票表决,最终认定Kubernetes成为该基金会的首个结业项目。获得这一称号将给Kubernetes带来多方面助益。这标志着Kubernetes已经拥有充分的成熟度与弹性水平,足以在任何行业中的各类企业内对容器进行大规模管理。而作为“结业项目”,Kubernetes将处于更为强大的地位,能够更快地发展并始终保持住自己充满活力、健康且多元的技术社区。
6) 2018年6月,Helm脱离Kubernetes,被CNCF纳入麾下。Helm是一个开源项目,开发者可以用它生成容器化应用使得安装非常简化。helm作为k8s的一个子项目存在很久,但是现在已经成为一个独立的项目。现在这两个项目的迅速成长下,发展方向也有所不同。为了应付更大使用规模,Kubernetes改变了发展方向,而Helm则是继续让开发者更简易部署Kubernetes,因此归入CNCF基金会是更好的选择。
4) Kubernetes发展态势
目前,三家规模最大的云服务供应商皆提供自己的托管Kubernetes服务。此外,根据Redmonk公布的数据,全球财富一百强企业当中有71%在使用容器,而超过半数财富百强企业利用Kubernetes作为其容器业务流程平台。
多达11258位开发贡献者、GitHub上拥有75000多次提交以及全球Meetup组中的15万8千名成员,反复证明着Kubernetes社区所展现的活力与延伸水平。Kubernetes在30个发展速度最快的开源项目当中排名第三。凭借这样的排名,很多人甚至将Kubernetes定义为开源历史上发展速度最快的项目之一。
图3:Kubernetes社区提交次数占比(按公司)
表2:Kubernetes社区代码行数(按公司)
3. 容器编排工具Mesos(DC/OS)
1) Mesos(DC/OS)简介
Mesos是Apache下的开源分布式资源管理框架,力争通过在多种框架之间动态共享资源来优化资源使用率,被称为分布式系统的内核。该项目于2009年由加利福尼亚大学伯克利分校的AMPLab发起,2013年7月,在该项目孵化大概两年时就成为了Apache的最高级别项目。相比于容器生态圈的其他开源项目,Apache Mesos 绝对可以称得上是“前辈”,因为他在2013年成为Apache 的顶级项目之时,Docker 技术才刚刚开始发展。也正是由于Docker 等容器技术的蓬勃发展,才让人们重新审视Mesos的价值。Mesos目前已经在Twitter, Airbnb等公司得到广泛应用,容器时代,它更被看做是Docker的黄金搭档。
围绕开源Mesos进行商业发展的美国初创公司Mesosphere诞生于2012年,正是它提出了基于Mesos的DCOS这一新理念,希望企业能够像使用一台计算机一样轻松驾驭整个数据中心。2016年3月,Mesosphere获得7350万美元的战略性投资。
DC/OS是Mesosphere公司的核心产品。以开源技术 Mesos,Docker,Marathon 为引擎,在其上开发了 DCOS 控制台、监控管理模块、弹性扩缩容调度模块、统一日志模块、资源配置模块、鉴权模块、持续集成平台等。DC/OS是以 Apache Mesos 为分布式系统内核的分布式数据中心操作系统,可以使企业像使用一台主机一样使用分布式数据中心的多个集群资源,进行弹性地扩容与缩容,实现资源自动化管理、进程调度、方便内部进程通讯、简化分布式服务的安装和管理,并提供网页界面和 CLI ,方便对集群和其中的服务进行远程地管理和监控。
2) Mesos近期重大里程碑事件
1) 2017年5月DC / OS 1.9引入了基于GPU的调度,通过基于GPU的调度,组织可以共享传统和机器学习工作负载的集群资源,在这些集群内部动态分配GPU资源,并且在需要时释放。
2) MesosCon大会于2017年6月20日到22日在北京国家会议中心举行。这是Linux基金会主办的一年一度的Mesos盛会。
3) 2017年9月宣布Mesosphere DC/OS 1.10,通用版的DC/OS 1.10提供了更安全、弹性和高性能平台,以运行数据密集型应用、容器应用使开发、部署和运维更容易
4) 2017年9月发布了基于DC/OS的Beta版Kubernetes。DC/OS上的Kubernetes为任何基础设施带来了像公有云一样的“集群即服务”体验,DC/OS上的Kubernetes将允许运维人员轻松地在Mesosphere DC/OS上安装,扩展和升级多个生产级的Kubernetes集群。
5) 2018年5月Mesosphere 宣布,成功在D轮获得1.25亿美元的融资,比前四轮融资总额增加了一倍多,共计获得2.52亿美元,此次投资方除了多家创投、私募基金出资外,HPE也参与Mesosphere的D轮融资,此轮融资计划用于加强新兴技术的自动化程度,如容器、机器学习、IoT应用。
3) Mesos发展态势
目前,Mesosphere 拥有超过 125 家企业客户,其中 30% 是财富 50 强公司。Mesosphere 声称,其平台可以帮助不同行业的企业完成升级,服装、旅游、通讯及媒体都能够利用 DC/OS 来优化业务。
Mesosphere 的总部在旧金山,于纽约、德国汉堡及北京设立了办事处。在中国,Mesosphere 与华为、联通软件研究院、华三(H3C)等企业建立合作。并于 2017 年与中文 IT 社区 CSDN 达成战略合作,想要推进 DC/OS 和 Mesos 技术在中国的发展。
二、容器技术标准介绍
围绕容器主要存在容器运行时标准、网络接口标准和存储接口标准。其中主要的运行时标准OCI和CRI分别由Docker和Kubernetes主导推出。
OCI(Open Container Initiative):2015年6月,Docker公司与Linux基金会联合成立的项目,OCI的目标是主办一个开源技术社区,并为基于容器的解决方案构建一个中立的、可移植的、开放的规范和运行环境。该规范已经得到了谷歌、微软、华为等厂商的支持。致力于container runtime的标准的制定和runc的开发等工作。
CRI(container runtime interface):在Kubernetes 1.5版本之后推出了自己的运行时接口API—CRI,CRI接口的推出,隔离了各个容器引擎之间的差异,而通过统一的接口与各个容器引擎之间进行互动。与OCI不同,CRI与Kubernetes的概念更加贴合,并紧密绑定。cri不仅定义了容器的生命周期的管理,还引入了k8s中pod的概念,并定义了管理pod的生命周期。为了进一步与OCI进行兼容,Kubernetes还孵化了cri-o,成为了架设在CRI和OCI之间的一座桥梁。
CNI(Container Network Interface) 是 google 和 CoreOS 主导制定的容器网络标准,它 是在 RKT 网络提议 的基础上发展起来的,综合考虑了灵活性、扩展性、IP分配、多网卡等因素。CNI旨在为容器平台提供网络的标准化。不同的容器平台(比如目前的 Kubernetes、Mesos 和 RKT)能够通过相同的接口调用不同的网络组件。这个协议连接了两个组件:容器管理系统和网络插件,具体的事情都是插件来实现的,包括:创建容器网络空间(network namespace)、把网络接口(interface)放到对应的网络空间、给网络接口分配 IP 等。
CSI(Container Storage Interface)是要定义一个行业标准,使存储供应商(SP)能够一次开发一个插件,并在多个容器编排器系统中工作。CSI定义了一系列介于容器编排系统和存储提供商插件之间的通用程序接口(API)。每个存储提供商只需要实现一个CSI兼容的插件,然后容器编排系统就能够利用这些标准化接口和存储提供商的系统交互。CSI会支持大部分存储格式,也会同时支持本地和远程存储。
三、容器技术发展展望
云计算技术发展至今,从最开始的硬件虚拟化、IaaS、OpenStack、PaaS、容器设置到如今的 Serverless,云计算已经越来约接近应用逻辑。容器实现了应用的分装,方便了应用在不同环境间的迁移,轻量级的特性又使它能够消耗更少的资源而带来更大的便利,容器编排领域在2016 年就已经成为了兵家必争之地。2016 年的时候容器领域还在为Swarm、Mesos、Kubernetes谁能够在容器编排调度大战中胜出而猜测。经过不到一年的发展,Kubernetes 就以超过 70% 的市场占有率(据TheNewStack的调研报告)将另外两者遥遥甩在身后。Kubernetes 已经成为容器编排调度的实际标准,不论 Docker 官方还是 Mesos 都已经支持了 Kubernetes,Docker 公司在今年 10 月 16 日至 19 日举办的 DockerCon EU 2017 大会上宣布支持 Kubernetes 调度,Mesos 的商业化公司 Mesosphere 也宣布 Kubernetes on DC/OS。
图4:容器编排工具搜索热度
Kubernetes 产品迭代周期越来越快,从 2014 年开源,2015 年发布了两个版本,2016 年发布了三个版本,到2017一年内就发布了 4 个大版本,Kubernetes越来越受到关注,同时它也变得越来越稳定、易用。Kubernetes 已成为 GitHub 上参与和讨论人数最多的开源项目,在其官方 Slack 上有超过三万多名注册用户,国内外还有很多厂商、社区、爱好者组织的 meetup。
图5:Kubernetes的Slack用户数量和岗位需求数量
国外 Google 的 GKE、微软的 Azure ACS、AWS 的 Fargate 和 2018 年即将推出的 EKS、Rancher 联合 Ubuntu 推出的 RKE,国内的华为云、腾讯云、阿里云等都已推出了公有云上的 Kubernetes 服务,Kubernetes 已经成为公有云的容器部署的标配,私有云领域也有众多厂商在做基于 Kubernetes 的 PaaS 平台。随着企业落地 Kubernetes 的日益增长,相关的人才缺口也将显现。CNCF 又就此推出了 CKA(Certified Kubernetes Administrator)和 CKD(Certified Kubernetes Developer),假若在 Kubernetes 的生态构建与市场发展顺利的情况下,该证书将会展现其含金量。
同时,Cloud Native也是蓬勃发展和大发异彩,CNCF 中托管的一系列项目即致力于云原生应用整个生命周期的管理,从部署平台、日志收集、Service Mesh(服务网格)、服务发现、分布式追踪、监控以及安全等各个领域通过开源软件为我们提供一整套解决方案。Kubernetes 作为云应用的部署标准,直接面向业务应用,大大提高了云应用的可移植性,解决云厂商锁定的问题,让云应用可以在夸云之间无缝迁移,甚至用来管理混合云,成为企业 IT 云平台的新标准。
2018 年 Kubernetes 将结合 CI/CD 成为 DevOps 的得力工具,并成为高级开发人员的应用部署首选,也将成为 PaaS 层的重要组成部分。Kubernetes 将更加稳定好用,云原生将会出现更多的落地与最佳实践。
作者:张呈宇(1988-),硕士,现任中国联通研究院大数据研究中心平台技术研发室主任。主要从事大数据、云计算、容器技术等方向的研发工作。
更多推荐
所有评论(0)