Bootstrap

使用ceph作为kubernetes集群的持久化存储(storageclass)

ceph使用的rbd提供块存储,kubernetes的存储方式是存储类(storageclass)。

这里采用rook提供的storageclass.yaml来创建基于ceph的存储类。关于rook见以下链接:使用rook在kubernetes集群中部署ceph

[root@master rbd]# cd /root/rook/deploy/examples/csi/rbd
[root@master rbd]# ls
pod-ephemeral.yaml  pod.yaml  pvc-clone.yaml  pvc-restore.yaml  pvc.yaml  snapshotclass.yaml  snapshot.yaml  storageclass-ec.yaml  storageclass-test.yaml  storageclass.yaml

#执行rook自带的创建ceph rbd 存储类的yaml,创建存储类
[root@master rbd]# kubectl create -f storageclass.yaml 
cephblockpool.ceph.rook.io/replicapool created
storageclass.storage.k8s.io/rook-ceph-block created
#存储类创建成功
[root@master rbd]# kubectl get sc -n rook-ceph
NAME              PROVISIONER                  RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
rook-ceph-block   rook-ceph.rbd.csi.ceph.com   Delete          Immediate           true                   20s

#测试存储类是否可以直接创建pvc,不需要提前创建pv
[root@master rbd]# kubectl get pvc -A
No resources found
[root@master rbd]# kubectl get pv -A
No resources found
[root@master rbd]# kubectl create -f pvc.yaml 
persistentvolumeclaim/rbd-pvc created

 #可以看到pv和pvc已经创建好了,且已经自动绑定了
[root@master rbd]# kubectl get pv -A
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM             STORAGECLASS      REASON   AGE
pvc-0760d1b6-e301-4f09-80d0-471ea705a34f   1Gi        RWO            Delete           Bound    default/rbd-pvc   rook-ceph-block            3m47s
[root@master rbd]# kubectl get pvc -A
NAMESPACE   NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
default     rbd-pvc   Bound    pvc-0760d1b6-e301-4f09-80d0-471ea705a34f   1Gi        RWO            rook-ceph-block   2s
[root@master rbd]# 

 接下来使用基于ceph的存储类在kubernetes中搭建wordpress。

;