Local卷
Local卷具有以下特性,可用于一些特殊的应用,例如需要存储临时文件到本地磁盘进行分析。
(1)local
卷所代表的是某个被挂载的本地存储设备,例如磁盘、分区或者目录。
(2)与 hostPath
卷相比,local
卷能够以持久和可移植的方式使用,而无需手动将 Pod 调度到节点。
(3)local
卷仍然取决于底层节点的可用性,并不适合所有应用程序。 如果节点变得不健康,那么 local
卷也将变得不可被 Pod 访问。使用它的 Pod 将不能运行。 使用 local
卷的应用程序必须能够容忍这种可用性的降低,以及因底层磁盘的耐用性特征而带来的潜在的数据丢失风险。
(4)Kubernetes 调度器使用 PersistentVolume 的 nodeAffinity
信息来将使用 local
卷的 Pod 调度到正确的节点。对于Stateful Set (有状态)的服务,其调度的节点不会漂移,第一次启动在哪个节点,后续启动都在该节点。
示例:
apiVersion: v1
kind: PersistentVolume
metadata:
name: server-pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 20Gi
local:
path: /data/extract-server
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- k8s-slave01
- k8s-slave02
- k8s-slave03
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
volumeMode: Filesystem
创建PVC(PersistentVolumeClaim,PVC)
表达的是用户对存储的请求。这里采用的是单主机读写模式:ReadWriteOnce
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: server-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: local-storage
volumeMode: Filesystem
volumeName: server-pv
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 20Gi
phase: Bound
挂载
在服务中配置挂载即可
volumes:
- name: vol1
persistentVolumeClaim:
claimName: server-pvc