利用helm部署
https://rook.io/docs/rook/v1.1/helm-operator.html
git clone https://github.com/rook/rook.git
# 查看版本。然后切換分支。切換分支之后按照官方文檔的方式進行部署
git checkout release-1.1
k8s三個節點:
每個節點都加載一塊無格式化的硬盤,因為使用官方的部署方式,不自己進行修改cluster.yaml
的參數的話,會自動掃描磁盤。上生產環境的時候,需要自己指定磁盤類型
# 案例介紹
# 其中bluestore是直接使用裸磁盤的意思,會加打磁盤的效率
# filestore
nodes:
- name: "master001"
devices:
- name: "sdb"
- name: "sdc"
config:
storeType: bluestore
- name: "master002"
devices:
- name: "sdb"
- name: "sdc"
config:
storeType: bluestore
- name: "master003"
devices:
- name: "sdb"
- name: "sdc"
config:
storeType: bluestore
以下直接摘抄官網的
Ceph Storage快速入門
本指南將引導您完成Ceph集群的基本設置,並使您能夠使用集群中運行的其他Pod的塊,對象和文件存儲。
最低版本
Rook支持Kubernetes v1.10或更高版本。
先決條件
如果您要dataDirHostPath
在kubernetes主機上持久保留rook數據,請確保您的主機在指定路徑上至少有5GB的可用空間。
如果您感到幸運,可以使用以下kubectl命令和示例yaml文件創建一個簡單的Rook集群。有關更詳細的安裝,請跳至下一部分以部署Rook運算符。
cd cluster/examples/kubernetes/ceph
kubectl create -f common.yaml
kubectl create -f operator.yaml
# cluster測試就使用下面的yaml
kubectl create -f cluster-test.yaml
# 正式環境使用
kubectl create -f cluster.yaml
集群運行后,您可以創建塊,對象或文件存儲,以供集群中的其他應用程序使用。
分割線
到達此步驟已經可以見到基本情況,並且使用toolbox
進行查看
分割線,以下摘抄官網
官方文檔
Rook工具箱是一個容器,其中包含用於rook調試和測試的常用工具。該工具箱基於CentOS
,因此可以使用輕松安裝更多選擇的工具yum
。
在Kubernetes
中運行工具箱
Rook工具箱可以作為Kubernetes集群中的部署運行。確保已部署rook
的Kubernetes
集群正在運行時(請參閱Kubernetes說明),啟動rook-ceph-tools
pod
。
將工具規范另存為toolbox.yaml:
略,請點擊鏈接查看
啟動rook-ceph-tools
pod
:
kubectl create -f toolbox.yaml
等待工具箱窗格下載其容器並進入 running
狀態:
kubectl -n rook-ceph get pod -l "app=rook-ceph-tools"
rook-ceph-tools
pod
運行后,您可以使用以下命令連接到它:
kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o jsonpath='{.items[0].metadata.name}') bash
工具箱中的所有可用工具均已准備就緒,可滿足您的故障排除需求。例:
ceph status
ceph osd status
ceph df
rados df
使用完工具箱后,可以刪除部署:
kubectl -n rook-ceph delete deployment rook-ceph-tools
網頁請求
進入到cluster
cd cluster/examples/kubernetes/ceph
kubectl apply -f dashboard-external-https.yaml
# 查看端口號。也可以自定義好端口號
kubectl get svc -n rook-ceph | grep rook-ceph-mgr-dashboard-external-https
然后使用火狐瀏覽器進行打開。使用其他瀏覽器還需要自行配置
https://10.10.10.5:32231
# 獲取密碼
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o yaml | grep "password:" | awk '{print $2}' | base64 --decode
默認存儲地方
cat cluster.yaml
可以看到 dataDirHostPath: /var/lib/rook
字段還有spec.storage.directories.path
也需要修改成一樣的
可以根據自己的需求進行修改
測試
搭建一個wordpress
cd cluster/examples/kubernetes
# 創建storageclass
ceph/csi/rbd/storageclass.yaml
kubectl apply -f mysql.yaml
# 請記住修改service為nodeport。
kubectl apply -f wordpress.yaml
參考文檔: https://kubernetes.hankbook.cn/practice/rook/ceph/deployment.html