近日,Kubernetes 官方發布公告,宣布自 v1.20 起放棄對 Docker 的支持,屆時用戶將收到 Docker 棄用警告,并需要改用其他容器運行時。但 Docker 作為容器鏡像構建工具的作用將不受影響,用其構建的容器鏡像將一如既往地在集群中與所有容器運行時正常運轉。
官方解釋稱,Docker 作為一個完整的容器技術堆棧,在其創建之初就不是為了將其嵌入 Kubernetes 而設計的。除了其作為容器運行時本身的作用以外,Docker 還包含了一系列方便用戶交互的 UX 更改,而這些額外的功能對于 Kubernetes 來說過于臃腫。
事實上,Docker 并不符合 Kubernetes 的容器運行時接口標準(CRI),官方必須要維護一個名為 Dockershim 的中間件才能夠把 Docker 當作 Kubernetes 的容器運行時來使用。因此,官方建議用戶使用符合 CRI 的 containerd 或 CRI-O 作為取代 Docker 的容器運行時,并表示最早將于 v1.23 版本把 Dockershim 從 Kubelet 中移除。
不過,Kubernetes 官方表示用戶今后依然可以使用 Docker 來構建容器鏡像,而 Docker 生成的鏡像實際上也是一個 OCI(Open Container Initiative)鏡像。無論使用什么工具來構建鏡像,任何符合 OCI 標準的鏡像在 Kubernetes 看來都是一樣的。containerd 和 CRI-O 則可以提取這些鏡像并運行它們。
業內人士認為,自從 Docker 在容器編排引擎之爭中敗給 Kubernetes 后,這樣的結局或許早已注定。
官方聲明地址:https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/
本文地址:https://www.oschina.net/news/122387/k8s-will-abandon-docker