-
确认云平台存储支持:确保云平台(如AWS、Azure、GCP)的块存储服务(如EBS、Azure Disk、Persistent Disk)已启用,并安装对应的CSI驱动(如aws-ebs-csi-driver、disk.csi.azure.com)。
-
创建StorageClass:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cloud-storage provisioner: <云平台CSI驱动名称> #如ebs.csi.aws.com parameters: type: gp3 #根据云平台类型指定(如Azure的StandardSSD) reclaimPolicy: Delete volumeBindingMode: Immediate
-
创建PVC申请存储:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: app-pvc spec: accessModes: - ReadWriteOnce storageClassName: cloud-storage resources: requests: storage: 10Gi
-
挂载PVC到Pod:
apiVersion: v1 kind: Pod metadata: name: app-pod spec: containers: - name: app-container image: nginx volumeMounts: - mountPath: "/data" name: storage-volume volumes: - name: storage-volume persistentVolumeClaim: claimName: app-pvc
-
验证与调试:
- 执行
kubectl get pvc
确认PVC状态为Bound。 - 进入Pod写入测试文件,重启Pod后检查数据持久性。
- 若PVC未绑定,检查StorageClass配置及CSI驱动日志。
- 执行
注意:跨可用区场景需在StorageClass中指定zone参数,并确保Pod调度策略匹配。