關於Docker、Docker Engine和Kubernetes v1.20,開發人員需要了解的一切

Kubernetes的最新版本Kubernetes v1.20.0-rc.0[1]現已正式發佈。Kubernetes項目計劃棄用kubelet中的Docker引擎支持[2],而且對於dockershim的支持也將在下個版本(可能是明年下半年)中消失。但請不必擔心,你仍然可以使用Docker工具正常構建容器鏡像,而且鏡像使用不會受到任何影響。

對於Docker及Kubernets用戶,這究竟意味着什麼?

首先,不必驚慌。開發者們仍然可以使用Docker平臺在Kubernetes上構建、共享及運行容器!此番變化影響到的主要是Kubernetes上的運營人員與管理員,對開發者工作流程幾乎沒有絲毫變更。Docker構建的鏡像仍然符合OCI(開放容器倡議),因此將受到全面支持並能夠繼續在Kubernetes上順暢運行。

如果你使用Docker,則代表你已經在使用containerd。我們在containerd基礎之上構建起Docker運行時,並努力爲其賦予出色的開發者使用體驗。對於Kubernetes這類容器運行時越少越好的生產環境,也有不少用戶會選擇直接使用containerd等輕量化運行時。

Docker於2016年聯手谷歌與IBM共同打造了containerd項目,當時它的亮相也引發了一場重要轉變。而此次棄用dockershim(以及Docker Engine作爲運行時的功能定位)標誌着我們終於全面完成了爲Kubernetes提供現代運行時的長期承諾。最初,Containerd被定位爲Docker與Kubernetes的底層核心可擴展運行時,希望配合二者達成多種實際用途。

Containerd於2017年被捐贈給雲原生計算基金會(CNCF),隨後發展出的containerd CRI項目能夠與Kubernetes進行交互,也逐步吸引到來自亞馬遜、Google、微軟以及IBM乃至整個行業的大量創新支持與資源投入。

2019年,containerd成爲雲原生計算基金會畢業項目,而且時至今日其仍是唯一達到這樣成熟性高度的容器運行時。過去幾年以來,各大領先Kubernetes服務供應商(例如AWS與谷歌)都已經將containerd指定爲其Kubernetes運行時。而此次棄用過程,又再次反映出containerd迅猛的發展態勢、及其背後活躍技術社區獲得的巨大成功。

仍將正常支持你使用Docker工具創建的容器鏡像。

你使用Docker工具所構建的容器鏡像仍將繼續在Kubernetes上正常運行。作爲我們的下一代構建基礎設施,Buildkit擁有靈活的架構,既能夠作爲Docker構建器,也可以直接與containerd或者runC進行通信。很明顯,它不可能脫離Docker在基礎設施中獨立存在。

Docker致力於推動containerd的發展:我們將繼續與持續增長的Buildkit社區投入資源,幫助大家在任何基礎設施託管場景內使用Docker解決方案。

你可以繼續在本地及Kubernetes集羣中構建並運行Docker鏡像,本次棄用不會對此產生任何影響。

那麼,Kubernetes項目是要棄用什麼?

Kubernetes本次棄用的是dockershim[3],即Kubernetes kubelet實現中的組件之一。它能夠與Docker Engine進行通信。

我們需要如何應對?

在目前的Kubernetes 1.20版本中,Kubernetes管理員可以繼續使用Docker命令與kubectl命令管理自己的Kubernetes集羣。

在未來發布的Kubernetes版本中,包括接下來陸續推出的次要版本,對於dockershim的支持將最終被刪除,屆時你將無法使用Docker命令檢查自己的集羣。

好消息是,其中大部分命令都能在kubectl與ctr(containerd CLI)中找到替代選項。儘管未來在Kubernetes中檢查集羣的操作命令可能有所變化,但開發人員仍然可以使用Docker工具在Kubernetres上對容器及容器鏡像執行docker build、docker push以及docker run。

相關鏈接:

  1. https://github.com/kubernetes/kubernetes/releases/tag/v1.20.0-rc.0

  2. https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation

  3. https://github.com/kubernetes/kubernetes/tree/master/pkg/kubelet/dockershim

原文鏈接:https://www.docker.com/blog/what-developers-need-to-know-about-docker-docker-engine-and-kubernetes-v1-20/

Kubernetes實戰培訓

Kubernetes實戰培訓將於2020年12月25日在深圳開課,3天時間帶你係統掌握Kubernetes,學習效果不好可以繼續學習。本次培訓包括:雲原生介紹、微服務;Docker基礎、Docker工作原理、鏡像、網絡、存儲、數據卷、安全;Kubernetes架構、核心組件、常用對象、網絡、存儲、認證、服務發現、調度和服務質量保證、日誌、監控、告警、Helm、實踐案例等,點擊下方圖片或者閱讀原文鏈接查看詳情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章