作者:尹正傑
版權宣告:原創作品,謝絕轉載!否則將追究法律責任。
目錄
- 一.Rook概述
- 1.rook概述
- 2.Rook和K8S版本對應關係
- 二.k8s對接Rook
- 1.部署Rook
- 2.K8S對接ceph
一.Rook概述
1.rook概述
Rook是一個開源的雲原生儲存編排器,為Ceph儲存提供平臺、框架和支援,以便與雲原生環境進行原生整合。
Ceph是一個分散式儲存系統,提供檔案、塊和物件儲存,部署在大規模生產叢集中。
Rook自動化了Ceph的部署和管理,以提供自我管理、自我擴充套件和自我修復的儲存服務。Rook操作員透過構建Kubernetes資源來部署、配置、配置、擴充套件、升級和監控Ceph來實現這一點。
Ceph運營商於2018年12月在Rook v0.9版本中宣佈穩定,提供了多年的生產儲存平臺。Rook由雲原生計算基金會(CNCF)託管,是一個畢業級專案。
Rook是用Golang實現的,ceph是用C++實現的,其中資料路徑經過高度最佳化。
簡而言之,Rook是一個自管理的分散式儲存編排系統,可以為kubernetes提供便利的儲存解決方案,Rook本身並不提供儲存,而是kubernetes和儲存之間提供適配層,簡化儲存系統的部署和維護工作。目前主要支援儲存系統包括但不限於Ceph,Cassandra,NFS等。
從本質上來講,Rook是一個可以提供ceph叢集管理能力的Operator,Rook使用CRD一個控制器來對Ceph之類的資源進行部署和管理。
官網連結:
https://rook.io/
github地址:
https://github.com/rook/rook
2.Rook和K8S版本對應關係
如上圖所示,我的K8S 1.23.17最高能使用的Rook版本為v1.13。
參考連結:
https://rook.io/docs/rook/v1.13/Getting-Started/Prerequisites/prerequisites/
二.k8s對接Rook
1.部署Rook
1.下載指定版本的Rook
[root@master231 ~]# wget https://github.com/rook/rook/archive/refs/tags/v1.13.10.tar.gz
2.解壓軟體包
[root@master231 ~]# tar xf v1.13.10.tar.gz
3.建立Rook
[root@master231 ~]# cd rook-1.13.10/deploy/examples/
[root@master231 examples]#
[root@master231 examples]# kubectl apply -f crds.yaml -f common.yaml -f operator.yaml
4.部署Ceph
[root@master231 examples]# kubectl apply -f cluster.yaml
5.部署Rook Ceph工具
[root@master231 examples]# kubectl apply -f toolbox.yaml
6.部署CephUI
[root@master231 examples]# kubectl apply -f dashboard-external-https.yaml
7.檢視Pod列表
[root@master231 examples]# kubectl get pods,svc -n rook-ceph
8.獲取ceph dashboard的登入密碼
[root@master231 examples]# kubectl -n rook-ceph get secrets rook-ceph-dashboard-password -o yaml
其他部署方式,推薦閱讀:
https://rook.io/docs/rook/v1.13/Getting-Started/quickstart/#deploy-the-rook-operator
2.K8S對接ceph
參考連結:
https://www.cnblogs.com/yinzhengjie/p/14351091.html