@Rays
2017-10-22T21:43:26.000000Z
字数 2502
阅读 1737
架构&设计
容器
摘要: 在DockerCon 2017欧洲大会上,Docker宣布将在Docker Platform和Moby Project中集成Kubernetes。下一版本的Docker EE将支持用户在同一集群中运行Swarm和Kubernetes工作负载。Docker EE的beta版计划于2017年底前推出,其中Docker for Mac和Docker for Windows的Beta版将集成“可选的”Kubernetes。
作者: Daniel Bryant
正文:
在DockerCon 2017欧洲大会上,Docker宣布将在Docker Platform和Moby Project中集成Kubernetes。下一版本的Docker EE(即Docker企业版本,Docker Enterprise Edition)将支持用户在同一集群中运行Swarm和Kubernetes工作负载。Docker EE的beta版计划于2017年底前推出,其中Docker for Mac和Docker for Windows的Beta版将集成“可选的”Kubernetes。
作为“企业级”的容器平台,Docker EE通过私有注册及更多的安全特性,提供了一种集中化控制平台和软件供应链管理。Docker EE很快将会支持Swarm和Kubernetes编排器共处于同一Linux集群上,如图所示:
同时提供Swarm和Kubernetes的Docker EE编排(图片来自于Docker官方博客)
2016年,Docker在平台中添加了“Swarm模式”编排,这是由SwarmKit项目提供支持的。在此前一年,Kubernetes编排平台就已发布了1.0版本,并由Google作为种子项目捐赠给(CNCF)(原生云计算基金会,Cloud Native Computing Foundation)。Docker官方博客指出,来自于用户的反馈希望Docker能支持多种编排技术:
我们得到反馈,部分用户确实喜欢具有端到端容器管理的集成Docker平台,但是他们也想使用其它的编排器(例如Kubernetes)进行容器调度。这可能是因为他们已将服务设计运行在Kubernets上,也可能是因为Kubernets能提供他们所寻求的一些特殊功能。
Docker还宣布,他们将在2017年底前以Beta版程序的形式,为运行在Mac和Windows上的Docker CE(社区版,Community Edition)添加“可选的Kubernetes”。对此有兴趣的读者可以注册beta.docker.com。
对于下一版本的Docker平台,开发人员可使用自己的工作站直接在Kubernetes上构建和测试最终用于生产环境的应用。运维人员可在运行由Kubernetes或Swarm编排的生产环境应用时,使用Docker EE的所有特性,例如安全的多租用、图片扫描和基于角色的访问控制等。
Docker官方博客指出,虽然Kubernetes社区已经构建了一些“切实的解决方案”,用于在本地工作站上安装Kubernetes开发设置,例如minikube项目。但是“对于docker build、run和test紧密结合的迭代过程,实现起来依然相当棘手”。一旦在Docker for Mac和for Windows中添加了对Kubernetes的支持,开发人员将可使用同一开发系统构建Docker Compose、基于Swarm的应用和Kubernetes应用。
Docker也将使用Custom Resources和API服务器聚集(API Server Aggregation)层构建Kubernetes组件,以使Docker Compose应用易于作为Kubernetes原生的Pods和Services部署。Docker Inc的创始人兼CTO Solomon Hykes在Docker官方博客上指出,要集成到Docker中的Kubernetes版本将会是“为所有人所熟悉的vanilla Kubernetes。这一版本直接来自于CNCF,它既不是一个分支,也不是一个过期版本,不会具有任何形式的包装或受限”。尽管显然Docker正加大对Kubernetes的投资,但Kykes还是强调指出,Docker依然致力于Swarm:
虽然我们正在Docker中添加Kubernetes编排选项,但是我们依然致力于Swarm,并服务于那些在大规模在生产中使用Swarm和Docker运行关键应用的客户及用户。
与此同时,值得注意的是,随着CRI(容器运行时接口,Container Runtime Interface)在2016年的引入,Kubernetes平台已而降低了与Docker容器运行时的耦合。现在有多个在开发的项目使用CRI将容器运行时集成到Kubernetes中,虽然它们尚未准备就绪用于生产环境。其中包括:cri-o,一种符合Open Containers Initiative (OCI)的运行时;rktlet,CoreOs rkt容器的运行时;cri-containerd,一种得到Docker支持的containerd实现。
自去年开始,Docker已经开始通过Moby Project去迎合Kubernetes,并对Kubernetes做出贡献。其中的项目包括:前面所提及的containerd和cri-containerd,用于容器运行时;LinuxKit,用于构建运行容器的自定义安全、可移植且精益的操作系统;InfraKit,用于声明式且自愈合架构的创建和管理;Notary,通过Docker及其它容器的项目签名和验证容器。
对于即将推出的Docker EE和CE原生支持Kubernetes,更多信息敬请查看Docker官方博客。读者也可以注册beta.docker.com获得Beta版程序。
查看英文原文: DockerCon Europe 2017: Docker EE and CE to Include Kubernetes Integration