與此同時,以容器為代表的云原生技術也在持續(xù)演進,尤其在 Kubernetes 成為云原生體系的技術核心以后。容器技術已經(jīng)進入 Kubernetes 時代,原來的技術體系正在悄然改變。早在 2020 年 12 月,Kubernetes 就宣布將棄用 dockershim,從那時起,業(yè)界就在尋求移除 dockershim 的替代方案。
經(jīng)過過去一年的過渡,日前,Kubernetes 宣布,將在 Kubernetes 1.24 版本中刪除 dockershim,該版本定于今年 4 月左右發(fā)布。對此,SUSE Rancher 作為一個開源的企業(yè)級 Kubernetes 管理平臺,早已給出了應對之道。

在日前的相關主題直播中(https://www.bilibili.com/video/BV1Xa411C78k?spm_id_from=333.999.0.),SUSE Rancher 大中華區(qū)研發(fā)總監(jiān)張智博表示,針對習慣于使用 docker 的用戶,SUSE Rancher 將繼續(xù)為客戶提供 Kubernetes+Docker 相關技術產(chǎn)品;對于那些希望跟隨 Kubernetes 上游發(fā)展的用戶,SUSE Rancher 則通過提供 Kubernetes+Containerd 相關技術產(chǎn)品幫助企業(yè)擁抱容器、擁抱云原生。
Kubernetes 崛起,棄用 Dockershim 是技術發(fā)展的必然
要弄清楚 Kubernetes 為何會棄用 dockershim,還要從容器技術的發(fā)展說起。在容器技術崛起之前,業(yè)界最熱門的技術是虛擬化平臺,如 VMWare、OpenStack 等。盡管虛擬機可以“虛擬”出很多子系統(tǒng),但存在占用空間大、啟動慢、資源占用高等問題。
像 Docker 這樣的容器技術,屬于輕量級的“虛擬化”,它不需要“虛擬”出整個操作系統(tǒng),只需要“虛擬”一個小規(guī)模的環(huán)境(類似“沙箱”),從而成功規(guī)避了虛擬機的缺點,受到業(yè)界的熱烈歡迎和追捧。
不過,在 2013 年 Docker 開源以后,新的問題出現(xiàn)了:Docker 只是創(chuàng)建容器的工具,是應用容器引擎,它本身并不是容器;如果想將 Docker 應用于具體的業(yè)務層面,還需要對其進行編排、管理和調(diào)度。2014 年,Kubernetes 橫空出世并默認使用 Docker 作為容器運行,實現(xiàn)了對容器的編排、管理和調(diào)度。
隨后,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 已經(jīng)過時;相反,Docker 的性能久經(jīng)考驗,技術也更為成熟,不僅擁有龐大的用戶群體,也是相當長一段時間里,企業(yè)開展容器技術應用的重要切入點。
在 Apache APISIX PMC 張晉濤看來,Docker 的發(fā)展之所以顯現(xiàn)疲態(tài),與其開源之后一直沒有找到合適的商業(yè)化路線有關。未來,Docker 最核心的動作就是Kubernetes 給開發(fā)者提供好用的容器技術,它的定位依然是容器平臺,而不是底層的容器運行時。
未來的容器運行時將是 containerd 的天下,張智博認為,棄用 dockershim 為containerd 的快速普及帶來了新的機遇,這一點在2021年 CNCF Survey 上有很明顯的展示,大多數(shù)用戶均選擇 containerd 替換 Docker 的方案。不過,底層技術的變革并不會對企業(yè)用戶帶來多大影響,公有云和其他商業(yè)廠商以及開源社區(qū)會有足夠多的技術路線來規(guī)避風險。
正如張晉濤所說,采用云服務的企業(yè)對容器運行時的切換其實是無感知的。即便企業(yè)采用的不是云上托管而是自建云的模式,終端用戶也無需關注這一點,只有企業(yè)中負責 Kubernetes 維護管理的運維人員才會在意。因此,張智博建議,企業(yè)要以不變應萬變,業(yè)務穩(wěn)定性永遠是第一考量,而非技術架構的先進性。
不論是 Kubernetes 的突飛猛進、Docker 的日漸式微,還是 containerd 的大勢所趨,企業(yè)短期內(nèi)都無需過分關注。對于那些構建在公有云上的業(yè)務,云廠商已經(jīng)幫助企業(yè)客戶解決了底層技術架構升級的問題;而對于構建了私有云的企業(yè)客戶來說,他們也不必破壞傳統(tǒng)技術架構的穩(wěn)定性和持久性,只需要在建立新的集群時逐步完成 containerd 的逐步替代和切換。
面對這一技術變革,SUSE Rancher 采用了商業(yè)廠商面向開源社區(qū)推動的 cri-dockerd 方案,確保 RKE 集群可以繼續(xù)利用 Docker 作為其容器運行時;而對于希望跟隨上游發(fā)展而移除Docker的用戶,SUSE Rancher 的 K3s/RKE2 等開源產(chǎn)品均使用 containerd 作為默認運行時,K3s 可以面向本地開發(fā)以及邊緣環(huán)境,RKE2 則可以面向數(shù)據(jù)中心使用場景。
也就是說,盡管 SUSE Rancher 是開源廠商,但非常重視開源的商業(yè)化。雖然技術的發(fā)展趨向于 containerd,SUSE Rancher 并不會強制客戶去 Docker,如果企業(yè)客戶依然在使用 Docker,SUSE Rancher也會繼續(xù)維護這類項目。
加速技術迭代,SUSE 激活企業(yè)無限創(chuàng)新潛力
在云原生領域,Kubernetes 棄用 Dockershim 只是容器技術演進過程中的一個小插曲;當前,各行各業(yè)數(shù)字化轉型持續(xù)深入,企業(yè)客戶正在向云計算技術提出越來越多的新要求。
日前,CNCF 發(fā)布的 2021 年度調(diào)查報告顯示,96% 的企業(yè)正在使用或評估Kubernetes,這一數(shù)據(jù)是自 2016 年開啟該項調(diào)查以來的歷史新高。CNCF 認為,容器和 Kubernetes 的事實地位已經(jīng)鞏固,隨著技術的發(fā)展,容器和 Kubernetes 將慢慢轉向“幕后”工作;與過去相比,企業(yè)似乎更密集地使用無服務器和托管服務,開發(fā)者也不一定需要了解底層容器技術。
正是預判了這一趨勢,SUSE 作為全球最大的獨立開源公司,在 2020 年完成了對 Kubernetes 管理領域市場領導者 Rancher Labs 的收購,從而具備了全面覆蓋企業(yè)級 Linux、容器、Kubernetes 和邊緣計算等領域的綜合實力,可以幫助企業(yè)客戶在數(shù)據(jù)中心、云端、邊緣側等任意場景創(chuàng)新。
2021年底,SUSE通過Kubernetes構建的超融合基礎架構(HCI)開源軟件Harvester 正式 GA,自此 SUSE 的產(chǎn)品陣容已經(jīng)擴展到超融合基礎設施領域。不久前,SUSE 又正式發(fā)布了容器桌面管理工具 Rancher Desktop 1.0.0,可以幫助企業(yè)客戶在 Mac、Windows 和 Linux 系統(tǒng)中以桌面形式管理 Kubernetes和容器。
從容器到 Kubernetes,從企業(yè)級 Linux 到邊緣計算,從開源到開放,SUSE 正在走向比云計算更廣闊的數(shù)字化星辰大海。