Dockershim 即將被移除?看 SUSE Rancher 的應對之道!

Rancher發表於2022-03-14

行業數字化轉型如火如荼,企業正在全面轉向雲原生平臺,並由此引發了架構方案、生產方式、思維模式、商業模式等一系列的變革。Gartner 的預測顯示,到 2025 年,95% 以上的數字化轉型方案將選擇雲原生平臺作為基礎,而在 2021 年這一比例只有不到 40%。

與此同時,以容器為代表的雲原生技術也在持續演進,尤其在 Kubernetes 成為雲原生體系的技術核心以後。容器技術已經進入 Kubernetes 時代,原來的技術體系正在悄然改變。早在 2020 年 12 月,Kubernetes 就宣佈將棄用 dockershim,從那時起,業界就在尋求移除 dockershim 的替代方案。

經過過去一年的過渡,日前,Kubernetes 宣佈,將在 Kubernetes 1.24 版本中刪除 dockershim,該版本定於今年 4 月左右釋出。對此,SUSE Rancher 作為一個開源的企業級 Kubernetes 管理平臺,早已給出了應對之道。

在日前的相關主題直播中(https://www.bilibili.com/vide...),SUSE Rancher 大中華區研發總監張智博表示,針對習慣於使用 docker 的使用者,SUSE Rancher 將繼續為客戶提供 Kubernetes+Docker 相關技術產品;對於那些希望跟隨 Kubernetes 上游發展的使用者,SUSE Rancher 則通過提供 Kubernetes+Containerd 相關技術產品幫助企業擁抱容器、擁抱雲原生。

Kubernetes 崛起,棄用 Dockershim 是技術發展的必然

要弄清楚 Kubernetes 為何會棄用 dockershim,還要從容器技術的發展說起。在容器技術崛起之前,業界最熱門的技術是虛擬化平臺,如 VMWare、OpenStack 等。儘管虛擬機器可以“虛擬”出很多子系統,但存在佔用空間大、啟動慢、資源佔用高等問題。

像 Docker 這樣的容器技術,屬於輕量級的“虛擬化”,它不需要“虛擬”出整個作業系統,只需要“虛擬”一個小規模的環境(類似“沙箱”),從而成功規避了虛擬機器的缺點,受到業界的熱烈歡迎和追捧。

不過,在 2013 年 Docker 開源以後,新的問題出現了:Docker 只是建立容器的工具,是應用容器引擎,它本身並不是容器;如果想將 Docker 應用於具體的業務層面,還需要對其進行編排、管理和排程。2014 年,Kubernetes 橫空出世並預設使用 Docker 作為容器執行,實現了對容器的編排、管理和排程。

隨後,Kubernetes 的程式碼當中包含了很多與 Docker 相關的操作邏輯,為了能夠做解耦,相容更多的容器執行時,Kubernetes 將操作 Docker 的相關邏輯獨立出來,組成了 dockershim。因此,dockershim 可以看作是 Kubernetes 的一個元件,主要目的是為了通過 CRI (容器執行時介面)操作 Docker;也就是說,dockershim 相當於 Kubernetes 和 Docker 的一箇中轉站或者樞紐。

這樣一來,Kubernetes 或 Docker 有任何的功能變動,dockershim 程式碼都必須隨之改動,以支援變更。但 Docker 的底層執行時是 containerd,而 containerd 也支援 CRI, Kubernetes 完全可以繞過 dockershim 這一中轉站直接通過 CRI 與 containerd 進行互動;此外,隨著容器技術的演進,容器執行時也變得多種多樣,Kubernetes 通過 CRI 即可與它們進行互動,dockershim 因此變得可有可無。

面對變革,SUSE Rancher 的建議和應對之道

儘管 Kubernetes 即將棄用 dockershim,但這並不意味著 Docker 已經過時;相反,Docker 的效能久經考驗,技術也更為成熟,不僅擁有龐大的使用者群體,也是相當長一段時間裡,企業開展容器技術應用的重要切入點。

在 Apache APISIX PMC 張晉濤看來,Docker 的發展之所以顯現疲態,與其開源之後一直沒有找到合適的商業化路線有關。未來,Docker 最核心的動作就是 Kubernetes 給開發者提供好用的容器技術,它的定位依然是容器平臺,而不是底層的容器執行時。

未來的容器執行時將是 containerd 的天下,張智博認為,棄用 dockershim 為containerd 的快速普及帶來了新的機遇,這一點在 2021年 CNCF Survey 上有很明顯的展示,大多數使用者均選擇 containerd 替換 Docker 的方案。不過,底層技術的變革並不會對企業使用者帶來多大影響,公有云和其他商業廠商以及開源社群會有足夠多的技術路線來規避風險。

正如張晉濤所說,採用雲服務的企業對容器執行時的切換其實是無感知的。即便企業採用的不是雲上託管而是自建雲的模式,終端使用者也無需關注這一點,只有企業中負責 Kubernetes 維護管理的運維人員才會在意。因此,張智博建議,企業要以不變應萬變,業務穩定性永遠是第一考量,而非技術架構的先進性。

不論是 Kubernetes 的突飛猛進、Docker 的日漸式微,還是 containerd 的大勢所趨,企業短期內都無需過分關注。對於那些構建在公有云上的業務,雲廠商已經幫助企業客戶解決了底層技術架構升級的問題;而對於構建了私有云的企業客戶來說,他們也不必破壞傳統技術架構的穩定性和永續性,只需要在建立新的叢集時逐步完成 containerd 的逐步替代和切換。

面對這一技術變革,SUSE Rancher 採用了商業廠商面向開源社群推動的 cri-dockerd 方案,確保 RKE 叢集可以繼續利用 Docker 作為其容器執行時;而對於希望跟隨上游發展而移除 Docker 的使用者,SUSE Rancher 的 K3s/RKE2 等開源產品均使用 containerd 作為預設執行時,K3s 可以面向本地開發以及邊緣環境,RKE2 則可以面向資料中心使用場景。

也就是說,儘管 SUSE Rancher 是開源廠商,但非常重視開源的商業化。雖然技術的發展趨向於 containerd,SUSE Rancher 並不會強制客戶去 Docker,如果企業客戶依然在使用 Docker,SUSE Rancher 也會繼續維護這類專案。

加速技術迭代,SUSE 啟用企業無限創新潛力

在雲原生領域,Kubernetes 棄用 Dockershim 只是容器技術演進過程中的一個小插曲;當前,各行各業數字化轉型持續深入,企業客戶正在向雲端計算技術提出越來越多的新要求。

日前,CNCF 釋出的 2021 年度調查報告顯示,96% 的企業正在使用或評估Kubernetes,這一資料是自 2016 年開啟該項調查以來的歷史新高。CNCF 認為,容器和 Kubernetes 的事實地位已經鞏固,隨著技術的發展,容器和 Kubernetes 將慢慢轉向“幕後”工作;與過去相比,企業似乎更密集地使用無伺服器和託管服務,開發者也不一定需要了解底層容器技術。

正是預判了這一趨勢,SUSE 作為全球最大的獨立開源公司,在 2020 年完成了對 Kubernetes 管理領域市場領導者 Rancher Labs 的收購,從而具備了全面覆蓋企業級 Linux、容器、Kubernetes 和邊緣計算等領域的綜合實力,可以幫助企業客戶在資料中心、雲端、邊緣側等任意場景創新。

2021年底,SUSE 通過 Kubernetes 構建的超融合基礎架構(HCI)開源軟體Harvester 正式 GA,自此 SUSE 的產品陣容已經擴充套件到超融合基礎設施領域。不久前,SUSE 又正式釋出了容器桌面管理工具 Rancher Desktop 1.0.0,可以幫助企業客戶在 Mac、Windows 和 Linux 系統中以桌面形式管理 Kubernetes 和容器。

從容器到 Kubernetes,從企業級 Linux 到邊緣計算,從開源到開放,SUSE 正在走向比雲端計算更廣闊的數字化星辰大海。

相關文章