Kubernetes2026-04-15·8 分钟
Kubernetes 存储与持久化
介绍 Kubernetes 存储模型、Volume 类型、持久卷和存储类的基本用法。
Kubernetes 存储与持久化
1. Volume 与 Pod 生命周期
- Pod 重启时,普通
emptyDir数据会丢失。 - Volume 用于在容器间共享数据或持久化数据。
2. 常见 Volume 类型
emptyDir:临时目录,Pod 生命周期内有效。hostPath:挂载宿主机目录,适合调试。persistentVolumeClaim:结合 PV 实现持久化存储。
3. PersistentVolume 与 PersistentVolumeClaim
yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: db-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi- PVC 是对存储资源的请求。
- PV 是集群中的存储资源与后端提供者的绑定。
4. StorageClass
yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp3- StorageClass 定义动态供给策略。
- 不同云厂商或本地存储使用不同 provisioner。
5. 在 Deployment 中使用 PVC
yaml
volumes:
- name: db-data
persistentVolumeClaim:
claimName: db-pvc- 适合数据库、缓存持久化和文件存储。
6. 访问模式
ReadWriteOnce:单节点读写。ReadOnlyMany:多节点只读。ReadWriteMany:多节点读写。
7. 备份与恢复
- 对关键存储使用备份方案,如 Velero、应用级备份。
- PVC 本身不代表备份,仍需外部备份策略。
8. 常见问题
- PVC 绑定失败:检查 StorageClass 和 provisioner。
- 数据丢失:确认使用了持久化卷而非
emptyDir。 - 权限问题:检查挂载路径与文件系统权限。
Kubernetes存储持久化