持久卷(Persistent Volume)。

  • PersistentVolume(PV)

    1. 集群中的存储资源
  • 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