CephFS StorageClass 实战:Redis 持久化与多节点共享存储

来自AI助手的总结
介绍CephFS StorageClass创建与RWX持久化验证流程
CephFS StorageClass 实战:Redis 持久化与多节点共享存储

一、部署CephFS StorageClass

CephFS 允许用户挂载一个兼容posix的共享目录到多个主机,该存储和NFS共享存储以及CIFS共享目录相似;

1、创建 StorageClass


[root@master01 ~]# cd /root/2/rook/deploy/examples/csi/cephfs/

[root@master01 cephfs]# kubectl apply -f storageclass.yaml

2、查看StorageClass

[root@master01 cephfs]# kubectl get sc
NAME                        PROVISIONER                     RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
rook-ceph-block (default)   rook-ceph.rbd.csi.ceph.com      Delete          Immediate           true                   17m
rook-cephfs                 rook-ceph.cephfs.csi.ceph.com   Delete          Immediate           true                   43s

说明:cephfs使用和rbd同样指定storageClassName的值便可,须要注意的是rbd只支持

ReadWriteOnce,cephfs能够支持ReadWriteMany 。

3、测试验证

创建 StorageClass


#编写创建pvc的yaml文件

[root@master01 2]# vim cephfs-pvc.yml

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

  name: redis-data-pvc

spec:

  accessModes:

    - ReadWriteMany

  resources:

    requests:

      storage: 2Gi

  storageClassName: rook-cephfs

#应用

[root@master01 2]# kubectl apply -f cephfs-pvc.yml

#验证

[root@master01 2]# kg pvc | grep redis-data-pvc

redis-data-pvc   Bound    pvc-df9be0ee-5950-4b3e-9c49-0ea09724d17c   2Gi        RWX            rook-cephfs       33s

建立一个pod来使用pvc做存储并验证持久化效果


#编写测试的yaml文件

[root@master01 2]# vim test-cephfs-pod.yml

apiVersion: v1

kind: Pod

metadata:

  name: redis

spec:

  nodeSelector:

    storage: rook-ceph

  containers:

  - name: redis

    image: registry.cn-hangzhou.aliyuncs.com/abroad_images/redis:6.2

    ports:

    - containerPort: 6379

      name: redisport

    volumeMounts:

    - mountPath: /data

      name: redis-pvc

  volumes:

    - name: redis-pvc

      persistentVolumeClaim:

        claimName: redis-data-pvc

#应用

[root@master01 2]# kubectl apply -f test-cephfs-pod.yml

#验证

[root@master01 2]# kgp | grep redis

redis                           1/1     Running   0             114s

#创建数据方便进行验证

[root@master01 2]# kubectl exec -it redis -- sh

# redis-cli

127.0.0.1:6379> set mykey "hello world"

127.0.0.1:6379> get mykey

"hello world"

127.0.0.1:6379> BGSAVE

127.0.0.1:6379> exit

# ls

dump.rdb

#删除pod

[root@master01 2]# kubectl delete -f test-cephfs-pod.yml

#再次创建pod

[root@master01 2]# kubectl apply -f test-cephfs-pod.yml

#验证数据持久化

[root@master01 2]# kubectl exec -it redis -- sh

# redis-cli

127.0.0.1:6379> get mykey

"hello world"

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容