持久卷(Persistent Volume)。
PersistentVolume(PV)
集群中的存储资源
PersistentVolumeClaim(PVC)
对存储资源对请求
StorageClass
01 PV
集群中的存储资源,提供静态供应和动态供应。
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0003
spec:
# 容量
capacity:
storage: 5Gi
# 卷模式,文件系统和块,默认是 文件系统,可不写
volumeMode: FileSystem
# 访问模式
accessModes:
- ReadWriteOnce
# 回收策略,Retain - 手动回收, Recycle -基本擦出 , Delete
persistentVolumeReclaimPolicy: Recycle
# 每个 PV 属于某个存储类,特定类的 PV 卷只能绑定到请求到该类存储卷的 PVC 申领
# 未设置,那么就只能绑定到没有指定存储类的 PVC 去申领
storageClassName: slow
# 挂载选项
mountOptions:
- hard
- nfsvers=4.1
nfs:
path: /tmp
server: 172.17.0.2
02 PVC
apiVersion: v1
kind: PersistentVolumenClaim
metadata:
name: myclaim
spec:
# 同 PV
accessModes:
- ReadWriteOnce
# 同 PV
VolumeMode: Filesystem
# 资源
resources:
requests:
storage: 8Gi
# 同 PV, 必须匹配
storageClassName: slow
# 标签选择
selector:
matchLabels:
# 表示 PV 必须带有此标签
release: "stable"
matchExpressions:
# 运算表达式,表示 enviroment in 取值列表: [dev] 中
- {key: enviroment, operator: In, values: [dev]}
03 使用
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: myfrontend
image: nginx
volumeMounts:
- mountPath: "/var/www/html"
name: mypd
volumes:
- name: mypd
# 指定 PVC
persistentVolumeClaim:
claimName: myclaim
