在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,一種符合
自去年開始,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