在今天的 DockerCon EU (2017) 上,Solomon 宣布 Docker 将原生支持 Kubernetes,也就是说 Kubernetes 将和 Swarm 一样作为 Docker 平台的编排管理系统。这包括 Docker EE、Docker CE 以及 Docker for Mac/Windows 等全平台的支持。
Docker for Mac/Windows
Docker for Mac/Windows 将原生支持把基于 docker-compose/swarm 的应用部署到本地的 Kubernetes 集群中,docker swarm 和 Kubernetes 共享相同的镜像、存储卷以及容器(也就是两种调度系统同时管理同一套容器)。这有助于简化容器应用的开发、构建、测试以及部署。
为了实现这个目标,Docker 基于 Kubernetes Custom Resources 和 API server aggregation 将 Docker Compose apps 部署为原生的 Kubernetes Pods/Services。
这里是一个 Docker for Mac 的示例视频,非常有趣。
Docker EE
在创建 Stack 的时候可以选择 Swarm 或者 Kubernetes:
并且还可以在 Shared Resources 除查看共享的资源:
当然,部署也很简单,内置在 Docker EE 中,swarm 和 Kubernetes 共享相同的 Node:
这里这里也有一个 Docker EE + Kubernetes 的示例视频。
Docker CE/Moby
Moby 与 Kubernetes 的集成通过一系列的开源项目来实现:
- containerd 和 cri-containerd,可以参考Kubernetes The Hard Way查看使用方法
- LinuxKit:支持构建Kubernetes镜像
- InfraKit:支持Kubernetes Flavor
- libnetwork:增加CNI的支持 https://github.com/docker/libnetwork/pull/1978
- Notary将会贡献给CNCF
- libentitlement将提供高级安全接口
遗憾的是,该功能暂时还无法体验,需要等到Docker下一个release。想要提前预览的同学可以点击https://beta.docker.com/注册预览版。
本文获作者授权转发,原文链接点击这里