Kubernetes-PersistentVolume(PV)介绍

PV介绍

  PV是对底层网络共享存储的一个抽象,PV由管理员创建和配置。PV是抽象出来的存储资源,包括存储能力、存储类型、访问模式、回收策略、后端存储类型等设置。

PV的参数详解

PV的yaml模板

apiVersion: v1
kind: PersistentVolume
metadata: 
  name: test-pv1
spec: 
  capacity: 
    storage: 1Mi
  accessModes: 
  - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs-stoarge
  nfs: 
    path: /date-nfs/k8s
    server: 127.0.0.1
  1. spec.capacity.storage:存储大小;
  2. spec.accessModes:访问模式;
  • RWO:ReadWriteOnce,仅允许单个节点挂载进行读写;
  • ROX:ReadOnlyMany,允许多个节点挂载且只读;
  • RWX:ReadWriteMany,允许多个节点挂载进行读写;
  1. spec.persistentVolumeReclaimPolicy:回收策略,有三种Retain/Recycle/Delete
  • Retain:保留,删除PVC后,PV保留数据;
  • Recycle:回收空间,删除PVC后,简单的清除文件;(NFS和HostPath存储支持)
  • Delete:删除,删除PVC后,与PV相连接的后端存储会删除数据;(AWS EBS、Azure Disk、Cinder volumes、GCE PD支持)
  1. spec.storageClassName:存储类别,指定一个StorageClass资源对象的名称,具有特定类别的PV只能与请求了该类别的PVC进行绑定;未设置特定类型的PV只能与不请求任何类型的PVC进行绑定。
  2. spec.mountOptions: 挂载参数,当PV挂载到一个节点时,可能需要设置额外的挂载参数,就是通过mountOptions字段设置。
  3. spec.nodeAffinity:节点亲和性,PV可以设置节点亲和性限制只能通过某些节点访问卷,使用这些卷的Pod将被调度到满足条件的节点上。
  4. spec.volumeMode:存储卷模式,k8s v1.13版本引入存储卷模式Volume Mode,值有Filesystem(文件系统,默认值),Block(块设备)。

PV的生命周期

$ kubectl get pv
pv生命周期
PV一共有4个生命周期阶段:Available/Bound/Released/Failed

  • Available: 可用状态,无PVC绑定;
  • Bound:绑定状态,已经和某个PVC绑定;
  • Released:释放状态,绑定的PVC已删除,资源释放,但没有被集群回收;
  • Failed:失败状态,自动资源回收失败;

PV的常用命令

  1. 创建(yaml的方式)
    $ kubectl create -f pv.yaml
  2. 删除
    $ kubectl delete pv pv_name
  3. 查看所有PV
    $ kubectl get pv
  4. 查看某个PV
    $ kubectl get pv pv_name
  5. 查看详情
    $ kubectl describe pv pv_name
    注意: 若在某个命名空间下,以上命令可以加上-n ns_name
posted @ 2020-03-07 14:27  Andya_net  阅读(757)  评论(0编辑  收藏  举报