Rook搭建Ceph
一、軟件版本及先決條件
軟件版本:
軟件版本名稱 |
軟件版本號 |
Pacific |
16.2.7 |
Rook |
V1.9 |
先決條件:
- K8s集群,1.16版本+
- K8s至少3個工作節點
- 每個工作節點至少有一塊未使用的硬盤
- Rook僅支持部署Ceph Nautilus以上版本
二、搭建Rook
1.下載代碼
wget https://github.com/rook/rook/archive/refs/tags/v1.9.0.tar.gz
2.拉取所需鏡像
此處注意:
因為不熟需要的部分鏡像國內無法下載,所以需要修改國內源或者國內源拉下來后重新打tag,本文選擇后者:
tar zxf v1.9.0.tar.gz
cd rook-1.9.0/deploy/examples
#查看需要的鏡像
cat images.txt
畫圈部分無法下載,所以換成國內源下載
#下載鏡像地址(以下兩步每個節點都需要運行)
docker pull registry.aliyuncs.com/google_containers/csi-attacher:v3.4.0
docker pull registry.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.5.0
docker pull registry.aliyuncs.com/google_containers/csi-provisioner:v3.1.0
docker pull registry.aliyuncs.com/google_containers/csi-resizer:v1.4.0
docker pull registry.aliyuncs.com/google_containers/csi-snapshotter:v5.0.1
為了省事,把剩下的鏡像也下載下來
docker pull quay.io/ceph/ceph:v16.2.7
docker pull quay.io/cephcsi/cephcsi:v3.6.0
docker pull quay.io/csiaddons/k8s-sidecar:v0.2.1
docker pull quay.io/csiaddons/volumereplication-operator:v0.3.0
docker pull rook/ceph:v1.9.0
#國內鏡像重新打tag
docker tag registry.aliyuncs.com/google_containers/csi-attacher:v3.4.0 k8s.gcr.io/sig-storage/csi-attacher:v3.4.0
docker tag registry.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.5.0 k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.0
docker tag registry.aliyuncs.com/google_containers/csi-provisioner:v3.1.0 k8s.gcr.io/sig-storage/csi-provisioner:v3.1.0
docker tag registry.aliyuncs.com/google_containers/csi-resizer:v1.4.0 k8s.gcr.io/sig-storage/csi-resizer:v1.4.0
docker tag registry.aliyuncs.com/google_containers/csi-snapshotter:v5.0.1 k8s.gcr.io/sig-storage/csi-snapshotter:v5.0.1
#還有一種辦法,修改operator.yaml文件(未實測)。
vim rook-1.9.0/deploy/examples/operator.yaml
此處去掉注釋,修改成國內鏡像地址
3.部署ceph集群
kubectl create -f crds.yaml -f common.yaml -f operator.yaml
kubectl create -f cluster.yaml
4.部署工具
kubectl create -f toolbox.yaml
5.部署Dashboard
kubectl apply -f dashboard-external-https.yaml
kubectl get svc -n rook-ceph
# 獲取 dashboard admin密碼
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 -d
訪問dashboard :https://Node IP:port