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 ```