数据库文件存储(DBFS),是一款针对数据库场景的云原生共享文件存储服务,支持共享式多点挂载并进行读写。本文介绍如何使用DBFS动态存储卷以及如何验证DBFS存储卷的共享存储特性。
索引
前提条件
注意事项
步骤一:创建StorageClass
您可以通过StorageClass存储类模板动态创建DBFS存储卷。
使用以下内容,创建sc.yaml文件。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-dbfs provisioner: dbfsplugin.csi.alibabacloud.com parameters: category: enterprise # 替换为您的DBFS版本类型。 zoneId: cn-hangzhou-i # 替换为您的DBFS可用区。 reclaimPolicy: Retain allowVolumeExpansion: true
参数
说明
name
StorageClass的名称。
provisioner
驱动类型。本示例取值为dbfsplugin.csi.alibabacloud.com,表示使用阿里云DBFS CSI插件创建StorageClass。
parameters.category
DBFS版本类型。建议使用企业版(enterprise),该版本类型支持共享挂载给多台ECS使用。
parameters.zoneId
DBFS文件系统所在的可用区。
reclaimPolicy
DBFS文件系统的回收策略,支持Delete和Retain。
如果数据安全性要求高,推荐使用Retain方式以免误删数据。
allowVolumeExpansion
配置为true时,可以实现DBFS存储卷的自动扩容。
执行以下命令,创建StorageClass。
kubectl create -f sc.yaml
查看已创建的StorageClass。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择存储 > 存储类。
在存储类页面,查看已创建的StorageClass。
步骤二:创建PVC
您可以通过创建存储声明PVC,声明所需的DBFS存储卷的大小,并绑定对应的StorageClass。
使用以下内容,创建pvc.yaml文件。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: dbfs-test spec: accessModes: - ReadWriteMany resources: requests: storage: 20Gi storageClassName: alicloud-dbfs
参数
说明
name
PVC的名称。
spec.accessModes
配置访问模式。
spec.storageClassName
StorageClass的名称,用于绑定StorageClass。
resources.requests.storage
声明DBFS文件系统的大小,最小为20 GiB。
执行以下命令,创建PVC。
kubectl create -f pvc.yaml
执行以下命令,查看PVC状态。
kubectl get pvc dbfs-test
预期输出:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE dbfs-test Bound dbfs-54bebeff-2f04-42ed-87ea-95e9ca36**** 20Gi RWX dbfs-test 10m
步骤三:创建应用并挂载PVC
使用以下内容,创建deploy.yaml文件。
apiVersion: apps/v1 kind: Deployment metadata: name: dbfs-test spec: replicas: 2 selector: matchLabels: app: dbfs-test template: metadata: labels: app: dbfs-test spec: containers: - image: nginx:latest name: main volumeMounts: - mountPath: /data name: data volumes: - name: data persistentVolumeClaim: claimName: dbfs-test
执行以下命令,创建应用并挂载PVC。
kubectl create -f deploy.yaml
执行以下命令,确认Pod启动成功。
kubectl get pod -l app=dbfs-test
预期输出:
NAME READY STATUS RESTARTS AGE dbfs-test-5b5cdb85f**** 1/1 Running 0 32s dbfs-test-c5bb4746c**** 1/1 Running 0 32s
步骤四:验证DBFS存储卷的共享存储
执行以下命令,查看Pod中的挂载点。
kubectl exec -it dbfs-test-5b5cdb85f**** -- df
预期输出:
Filesystem 1K-blocks Used Available Use% Mounted on ... dbfs_server 19879936 502784 19377152 3% /data ...
执行以下命令,在一个Pod中写入文件。
kubectl exec -it dbfs-test-5b5cdb85f**** -- sh -c "echo hello > /data/test.txt"
执行以下命令,在另一个Pod中读取文件。
kubectl exec -it dbfs-test-c5bb4746c**** -- cat /data/test.txt
预期输出:
hello
预期输出表明,DBFS存储卷可以实现多个Pod的共享存储。
- 本页导读 (1)