ceph
`https://www.cnblogs.com/sanduzxcvbnm/p/14842496.html`
事先准备好使用的镜像
```
yum install -y yum-utils device-mapper-persistent-data lvm2
须要用到的镜像,部署服务前首先得将镜像导入
rook/ceph:v1.6.3
ceph/ceph:v15.2.11
quay.io/cephcsi/cephcsi:v3.1.1.4
# 如下这些镜像会从k8s.gcr.io中拉取,网络的问题拉取不到,这里采用从其他地方拉取,然后重新tag的方法
k8s.gcr.io/sig-storage/csi-snapshotter:v4.0.0
docker pull antmoveh/csi-snapshotter:v4.0.0
docker tag antmoveh/csi-snapshotter:v4.0.0 k8s.gcr.io/sig-storage/csi-snapshotter:v4.0.0
k8s.gcr.io/sig-storage/csi-provisioner:v2.0.4
docker pull antmoveh/csi-provisioner:v2.0.4
docker tag antmoveh/csi-provisioner:v2.0.4 k8s.gcr.io/sig-storage/csi-provisioner:v2.0.4
k8s.gcr.io/sig-storage/csi-resizer:v1.0.1
docker pull antmoveh/csi-resizer:v1.0.1
docker tag antmoveh/csi-resizer:v1.0.1 k8s.gcr.io/sig-storage/csi-resizer:v1.0.1
k8s.gcr.io/sig-storage/csi-attacher:v3.0.2
docker pull antmoveh/csi-attacher:v3.0.2
docker tag antmoveh/csi-attacher:v3.0.2 k8s.gcr.io/sig-storage/csi-attacher:v3.0.2
k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1
docker pull antmoveh/csi-node-driver-registrar:v2.0.1
docker tag antmoveh/csi-node-driver-registrar:v2.0.1 k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1
```
## 部署Rook Operator
安装
```
# 克隆指定版本
git clone --single-branch --branch v1.6.3 https://github.com/rook/rook.git
# 进入到目录
cd rook/cluster/examples/kubernetes/ceph
#全部的pod都会在rook-ceph命名空间下建立
kubectl apply -f common.yaml
# k8s1.15版本及其以上的需要这个
kubectl apply -f crds.yaml
#部署Rook操做员
kubectl apply -f operator.yaml
# 在继续操作之前,验证 rook-ceph-operator 是否处于“Running”状态:
kubectl get pod -n rook-ceph
```
创建 Rook Ceph 集群
```
kubectl apply -f cluster.yaml
# 通过 kubectl 来查看 rook-ceph 命名空间下面的 Pod 状态
kubectl get pods -n rook-ceph
# OSD Pod 的数量将取决于集群中的节点数量以及配置的设备和目录的数量
# 如果要删除已创建的Ceph集群,可执行命令:kubectl delete -f cluster.yaml
Rook 工具箱---Ceph toolbox 命令行工具
```
Rook 工具箱---Ceph toolbox 命令行工具
```
# 验证集群是否处于正常状态,可以使用 Rook 工具箱,Rook 工具箱是一个用于调试和测试 Rook 的常用工具容器,该工具基于 CentOS 镜像,所以可以使用 yum 来轻松安装更多的工具包。
# 默认启动的Ceph集群,是开启Ceph认证的,这样你登录Ceph组件所在的Pod里,是无法去获取集群状态,以及执行CLI命令,这时须要部署Ceph toolbox,命令如下
kubectl create -f toolbox.yaml
# 一旦 toolbox 的 Pod 运行成功后,就可以使用下面的命令进入到工具箱内部进行操作:
# 进入ceph tool容器
kubectl exec -it $(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o jsonpath='{.items[0].metadata.name}') -n rook-ceph -- bash
#查看ceph状态
# ceph status
```