使用云硬盤動態存儲卷
更新時間 2025-05-27 17:20:32
最近更新時間: 2025-05-27 17:20:32
分享文章
本文介紹如何使用云硬盤動態存儲卷。
使用云盤動態存儲卷,即無需預先創建云硬盤和PV,只需創建PVC時指定存儲類(StorageClass),存儲插件cstor-csi就會自動創建云盤實例及對應PV資源。
該模式為推薦使用,您可以更關注工作負載本身的存儲需求,無需預先手動創建和配置存儲資源,降低底層基礎設施的復雜性。
前提條件
確保您已經創建Serverless集群,具體操作請參閱創建Serverless集群。若已有Serverless集群,無需重復操作。
已在插件市場安裝存儲插件cstor-csi,且插件正常運行。
已在云硬盤控制臺創建云盤。
確保kubectl工具已經連接目標集群。
使用云盤動態存儲卷(kubectl)
步驟一:創建存儲類(StorageClass)
安裝cstor-csi存儲插件后,默認會創建stor-csi-disk-sas-sc存儲類,不需要創建。可執行以下命令查看存儲類:
kubectl get sc cstor-csi-disk-sas-sc -oyaml步驟二:創建持久卷聲明(PVC)
示例yaml文件pvc-disk.yaml:
apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
name: "test-pvc"
namespace: "default"
spec:
# 訪問模式
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "10Gi"
storageClassName: "cstor-csi-disk-ssd-sc"
執行以下命令創建pvc:
kubectl apply -f pvc-disk.yaml步驟三:創建工作負載
示例yaml文件pod-pvc-disk.yaml:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nginx-pvc-disk
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx-pvc-disk
serviceName: ""
template:
metadata:
labels:
app: nginx-pvc-disk
spec:
containers:
- image: "registry-huadong1.crs-internal.daliqc.cn/open-source/nginx:1.26-alpine-slim"
imagePullPolicy: "IfNotPresent"
name: "nginx"
resources:
limits:
cpu: "100m"
memory: "256Mi"
requests:
cpu: "100m"
memory: "256Mi"
volumeMounts:
- mountPath: "/mnt/data"
name: "volume1"
volumes:
- name: "volume1"
persistentVolumeClaim:
claimName: "test-pvc"
執行以下命令創建工作負載:
kubectl apply -f pod-pvc-disk.yaml查看pv和pvc綁定狀態:
kubectl get pv
kubectl get pvc可以看到已經自動創建出了pv,并且pvc已綁定pv:
步驟四:驗證數據持久化
登錄彈性容器服務管理控制臺。
在容器組列表頁點擊剛才創建的實例。
點擊“遠程連接”頁簽,進入到容器內。
向/mnt/data 目錄下寫一個文件,執行:
echo "Hello World" > /mnt/data/test.log查看/mnt/data 目錄下文件,執行:
cat /mnt/data/test.log預期結果如下:
退出“遠程連接”,使用kubectl刪除pod,會觸發pod自動重建,等待Pod重新運行正常。
kubectl delete po nginx-pvc-disk-0對新建Pod,登錄彈性容器服務管理控制臺,繼續執行“遠程連接”,進入到容器內查看數據。執行:
cat /mnt/data/test.log預期結果如下:
以上步驟說明,pod刪除重建后,重新掛載云盤,數據仍然存在,說明云硬盤中的數據可持久化保存。