DockerCon 2017 欧洲大会:Docker EE 和 CE 将支持 Kubernetes

  • Daniel Bryant
  • 盖磊

2017 年 10 月 25 日

话题:云计算DevOps语言 & 开发Kubernetes

DockerCon 2017 欧洲大会上,Docker 宣布将在Docker PlatformMoby 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 版程序的形式,为运行在MacWindows上的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

云计算DevOps语言 & 开发Kubernetes