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。