kubernetes部署rook+ceph存儲系統

容器的持久化存儲

容器的持久化存儲是保存容器存儲狀態的重要手段,存儲插件會在容器裏掛載一個基於網絡或者其他機制的遠程數據卷,使得在容器裏創建的文件,實際上是保存在遠程存儲服務器上,或者以分佈式的方式保存在多個節點上,而與當前宿主機沒有任何綁定關係。這樣,無論你在其他哪個宿主機上啓動新的容器,都可以請求掛載指定的持久化存儲卷,從而訪問到數據卷裏保存的內容。

由於 Kubernetes 本身的鬆耦合設計,絕大多數存儲項目,比如 Ceph、GlusterFS、NFS 等,都可以爲 Kubernetes 提供持久化存儲能力。

Ceph分佈式存儲系統

Ceph是一種高度可擴展的分佈式存儲解決方案,提供對象、文件和塊存儲。在每個存儲節點上,您將找到Ceph存儲對象的文件系統和Ceph OSD(對象存儲守護程序)進程。在Ceph集羣上,您還可以找到Ceph MON(監控)守護程序,它們確保Ceph集羣保持高可用性。

Rook

Rook 是一個開源的cloud-native storage編排, 提供平臺和框架;爲各種存儲解決方案提供平臺、框架和支持,以便與雲原生環境本地集成。

Rook 將存儲軟件轉變爲自我管理、自我擴展和自我修復的存儲服務,它通過自動化部署、引導、配置、置備、擴展、升級、遷移、災難恢復、監控和資源管理來實現此目的。

Rook 使用底層雲本機容器管理、調度和編排平臺提供的工具來實現它自身的功能。

Rook 目前支持Ceph、NFS、Minio Object Store和CockroachDB。


Rook使用Kubernetes原語使Ceph存儲系統能夠在Kubernetes上運行。下圖說明了Ceph Rook如何與Kubernetes集成:

在這裏插入圖片描述

隨着Rook在Kubernetes集羣中運行,Kubernetes應用程序可以掛載由Rook管理的塊設備和文件系統,或者可以使用S3 / Swift API提供對象存儲。Rook oprerator自動配置存儲組件並監控羣集,以確保存儲處於可用和健康狀態。

Rook oprerator是一個簡單的容器,具有引導和監視存儲集羣所需的全部功能。oprerator將啓動並監控ceph monitor pods和OSDs的守護進程,它提供基本的RADOS存儲。oprerator通過初始化運行服務所需的pod和其他組件來管理池,對象存儲(S3 / Swift)和文件系統的CRD。

oprerator將監視存儲後臺駐留程序以確保羣集正常運行。Ceph mons將在必要時啓動或故障轉移,並在羣集增長或縮小時進行其他調整。oprerator還將監視api服務請求的所需狀態更改並應用更改。

Rook oprerator還創建了Rook agent。這些agent是在每個Kubernetes節點上部署的pod。每個agent都配置一個Flexvolume插件,該插件與Kubernetes的volume controller集成在一起。處理節點上所需的所有存儲操作,例如附加網絡存儲設備,安裝卷和格式化文件系統。

在這裏插入圖片描述

該rook容器包括所有必需的Ceph守護進程和工具來管理和存儲所有數據 - 數據路徑沒有變化。 rook並沒有試圖與Ceph保持完全的忠誠度。 許多Ceph概念(如placement groups和crush maps)都是隱藏的,因此您無需擔心它們。 相反,Rook爲管理員創建了一個簡化的用戶體驗,包括物理資源,池,卷,文件系統和buckets。 同時,可以在需要時使用Ceph工具應用高級配置。

Rook在golang中實現。Ceph在C ++中實現,其中數據路徑被高度優化。我們相信這種組合可以提供兩全其美的效果。

————————————————


原文鏈接:https://blog.csdn.net/networken/article/details/85772418


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