CRI-O進入CNCF孵化階段,或將挑戰Docker在容器界的地位

weixin_33763244發表於2019-04-10

根據ZDNet的訊息,近期CNCF正式接納了CRI-O為孵化專案,這意味著CRI-O或許將直接挑戰Docker作為頂級容器執行時的地位。

CRI-O(Container Runtime Interface Orchestrator) 是一個輕量級的,專門對Kubernetes進行優化的容器執行時環境。CRI最初是作為API來定義對容器執行時的呼叫,這允許使用者開發Kubernetes友好的輕量級容器執行時程式。CRI-O是第一個與Kubernetes CRI相容的容器執行時,由Google、Red Hat、英特爾、SUSE和IBM聯合開發。

幾年前,Docker很受歡迎。要大規模執行容器,你需要一個編排程式。到2017年底,Kubernetes已成為最受歡迎的容器編排器。

當然,你可以在Kubernetes之下用Docker執行容器。實際上,Docker仍然是Kubernetes的預設容器執行時。但輕量級的CRI-O執行時可以更好地通過API與Kubernetes一起使用。

CRI-O有如下功能:

  • 儲存github.com/containers/storage 庫用於管理層併為pod中的容器建立根檔案系統:實現OverlayFS,devicemapper,AUFS和btrfs,OverlayFS作為預設驅動程式。
  • 容器映象github.com/containers/image 庫用於從登錄檔中提取影像。 目前,它支援Docker schema 2 /版本1以及schema 2 /版本2。它還通過了所有的Docker和Kubernetes測試。
  • 網路:容器網路介面(CNI)用於為容器設定網路。各種CNI外掛如Flannel,Weave,Cilium和OpenShift-SDN已經經過了CRI-O的測試,並且能按預期工作。
  • 監控github.com/containers/conmon 是CRI-O中的一個實用程式,用於監控容器,處理來自容器程式的日誌記錄,為附加客戶端提供服務以及檢測和報告記憶體不足的情況。
  • 安全:容器安全分離策略由一系列工具提供,包括SELinux,Capabilities,seccomp和OCI規範中指定的其他安全分離策略。

CRI-O已經非常受歡迎了。Kubernetes聯合創始人Brendan Burns表示,部分原因是因為CRI-O的創始負責人不是在重複造輪子,而是使用共享元件,在生產中測試後改進的方法,以及現有的經過實戰檢驗的程式碼。因為CRI- O是專為Kubernetes量身定製的,它針對效能,穩定性,相容性和其他標準,特別是Kubernetes一致性測試,進行了調整。CRI-O是Kubernetes叢集的構建塊,可以根據需要促進容器的生命週期。

這是否意味著CRI-O將取代Docker? 是的,但也不是。

正如Red Hat高階工程師和CRI-O維護者Antonio Murdaca所解釋的那樣,“CRI-O是否會取代Docker?並不會,或者說,它是一個以Kubernetes為中心的執行時,因此它在Kubernetes的背景下取代了Docker。但是Docker作為我們習慣的開發工具,CRI-O是沒有辦法取代的,因為它沒有實現Docker Engine API或Docker CLI。這意味著你不能使用Docker CLI與CRI-O守護程式通訊。你必須經過Kubernetes才能實現通訊。“

CRI-O仍然會給Docker帶來競爭。正如CNCF技術長Chris Aniszczyk所寫,“CNCF擁有各種容器執行時,我們很高興CRI-O加入它們進行孵化。選擇和競爭將使終端使用者受益。”

相關文章