持久卷(PersistentVolume,简称PV)是 Kubernetes 中用于存储的抽象,它可以用来持久化容器存储。PV 可以与存储类(StorageClass)相关联,或者独立于存储类。
持久卷概述
持久卷提供了以下特性:
- 持久化存储:持久卷可以提供数据的持久化存储,即使容器被删除,数据也不会丢失。
- 容量管理:持久卷有明确的容量限制,可以在创建时指定。
- 访问模式:持久卷可以支持多种访问模式,如读写一次(ROX)、读写(RWX)、读(RO)。
使用场景
持久卷适用于以下场景:
- 需要数据持久化的应用。
- 需要在不同容器之间共享数据的应用。
- 需要控制存储容量和应用存储成本的应用。
工作原理
Kubernetes 使用 PersistentVolumeClaim
(简称PVC)来请求持久卷资源。当 PVC 与一个可用的 PV 匹配时,PVC 会绑定到相应的 PV,从而为应用程序提供存储资源。
配置与使用
以下是创建 PVC 的示例:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
创建 PVC 后,您可以在容器配置中挂载该 PVC:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image
volumeMounts:
- mountPath: /data
name: my-pvc
volumes:
- name: my-pvc
persistentVolumeClaim:
claimName: my-pvc
更多配置和使用方法,请参考Kubernetes 官方文档。
Kubernetes