關於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。
相關連結:
https://github.com/kubernetes/kubernetes/releases/tag/v1.20.0-rc.0
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation
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、實踐案例等,點選下方圖片或者閱讀原文連結檢視詳情。
- HTML及CSS筆記
- CNCF宣佈Open Policy Agent正式畢業!
- 獨家 | 利用Python實現主題建模和LDA 演算法(附連結)
- 一行程式碼引來的安全漏洞就讓我們丟失了整個伺服器的控制權
- bzoj3289: Mato的檔案管理(莫隊 樹狀陣列)
- 橡皮擦和 TA 在 CSDN 的精英好友們,頂級大佬推薦清單
- 吳恩達深度學習學習筆記——C1W2——神經網路基礎——作業1——Python及Numpy基礎
- k8s交付服務總結
- 物理史上的八大名人
- Java遍歷Map集合方法
- HaaS100 開發除錯系列 之 CPU利用率(cpuusage)的原理與使用
- Ceph 壞盤
- N51期第四次作業
- 帶BlendShape表情的動作檔案播放異常
- 系統開發基礎:UML相關知識筆記
- 雜湊表的實現
- 關於Docker、Docker Engine和Kubernetes v1.20,開發人員需要了解的一切
- Java第九次作業
- 最厲害的VUE指令,看完你就會了!!!
- SpringBoot整合Quartz實現定時任務的動態建立、啟動、暫停、恢復、刪除。