按照层级概念StorageClass
⟶
\longrightarrow
⟶ PersistentVolume
⟶
\longrightarrow
⟶ PersistentVolumeClaim
StorageClass
存储类 基于磁盘
这里只说本地存储
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
PersistentVolume
持久卷 是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。
基于存储类
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-pv
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
local:
path: /f/logs/ssd1 # 本机提供存储的位置
nodeAffinity: # local存储必须设置的
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- docker-desktop #node 名称
PersistentVolumeClaim
持久卷申领(PersistentVolumeClaim,PVC) 表达的是用户对存储的请求。概念上与 Pod 类似。 Pod 会耗用节点资源,而 PVC 申领会耗用 PV 资源。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-pvc
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 8Gi
storageClassName: local-storage