Docker官方将支持Kubernetes,容器编排大战宣告结束

作者 谢然,雨多田光

10月17日,Docker在丹麦哥本哈根举行的DockerCon大会上宣布,将扩大其Docker平台并选择积极拥抱容器编排对手Kubernetes。这意味着Docker客户及开发人员将可以选择同时使用Kubernetes与DockerSwarm进行容器工作负载的编排。

Docker的创始人Solomon Hykes在大会上介绍,对于即将推出的Docker平台新版本,开发人员将能够在其工作站中的Kubernetes上直接进行生产应用程序的构建与测试。而运营人员则能够从Docker企业版中获得各种帮助,具体包括多租户安全保护,镜像扫描以及基于角色的访问控制等,同时配合Kubernetes或者Swarm在生产环境中实现应用运行。

Solomon Hykes在大会上表示,今后在选择容器集群管理技术时现有的Docker开发人员不必学习新的Kubernetes工具,下一个版本的Docker将内置完整的Kubernetes发行版本,开发人员将能够一直使用Docker工具。

Docker的理念为“Build, Ship and Run Any App, Anywhere”,通过容器和镜像的特性让DevOps变得容易,但Docker的前景,更在于支持分布式、服务化设计,实现一系列可独立开发、独立部署和独立扩展的服务组合,以保证业务的灵活性和稳定性。

Docker容器被称为容器运行时的事实标准,而在容器编排上,Kubernetes、Mesos和来自Docker官方的DockerSwarm一直以来处于竞争状态,但来自Google公司的Kubernetes以其高效、简便、高水平的可移植性等优势占领了绝大部分市场,而如今Docker官方宣布将拥抱这样一位竞争对手,看起来Kubernetes俨然赢得了编排框架市场的胜利。

专家观点

TalkingData大数据及云计算工程师宋净超对此为读者带来了一番解读:

我觉得Kubernetes的眼光不止于容器编排,Docker作为Cloud Native生态中的最基础的Runtime,之后可能会被其他的Container Engine替代,到时候Docker也只不过是Runtime的一个选择而已。

而Kubernetes所在的CNCF是为了解决企业上云的系列问题,从Runtime到部署、监控、分布式追踪、网络等等,我认为接下来它自己也会去构建一个相应的云原生生态。那到时候是否又是另一场大战,我们拭目以待。

针对这个事件,通俗一点来讲,Docker相当于一部功能机,可以满足用户的一般需求。但是随着移动互联网的到来,大家需要更多的功能,原来的功能机已经无法满足需求了,这时候智能机,比如iPhone开始爆发了,这就是Kubernetes问世的一个环境。

但是功能机也不甘示弱,他们有了MTK,可以低成本去做功能啊!可以以低成本满足用户80%的需求。这也就是指这一次Docker官方说的,它将去支持Kubernetes。但就是那20%的非功能性需求决定了用户体验。而Kubernetes正是完全有着占有用户这20%需求的能力,所以一直以来它作为容器编排的实际市场领跑者。

再从一个具体的点上去做个比喻就是,Docker这个机子它本来只能支持单卡模式,但是现在它支持双卡了,它将自己本来的主卡,也就是DockerSwarm放到了副卡的位置上去了,而现在的主卡很明显就是Kubernetes。但是你看iPhone,这业界超一流的标准,它只支持单卡模式,那么未来Docker这部功能机,它如果想要向着这种一流去做,它现在的这个双卡战略会走得远吗?将来是否会直接将DockerSwarm这一副卡给去掉?

这可能是一个稍显不恰当的比喻,并不是贬低Docker而抬升Kubernetes,毕竟先有了Docker生态,有了容器化之后才有了Kubernetes,这里只是为了让读者切身感受,帮助理解。