K8S持久化存储PV、PVC笔记

 
Kubernetes 使用Persistent Volume和Persistent Volume Claim 两种API资源来管理存储。
  • PersistentVolume  (简称PV):  由管理员设置的存储,它是集群的一部分。就像节点(Node)是集群中的资源一样,PV也是集群中的资源。它包含存储类型,存储大小和访问模式。它的生命周期独立于Pod,例如当使用它的Pod销毁时对PV没有影响。
  • PersistentVolumeClaim (简称PVC): 是用户存储的请求。它和Pod类似。Pod消耗Node资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和MEM)。PVC可以请求特定大小和访问模式的PV。
 
  可以通过两种方式配置PV:静态或动态。
  •   静态PV:集群管理员创建许多PV,它们包含可供集群用户使用的实际存储的详细信息。
  •   动态PV:当管理员创建的静态PV都不匹配用户创建的PersistentVolumeClaim时,集群会为PVC动态的配置卷。此配置基于StorageClasses:PVC必须请求存储类(storageclasses),并且管理员必须已创建并配置该类,以便进行动态创建。
 
关于PersistentVolume的访问方式
  • ReadWriteOnce - 卷以读写方式挂载到单个节点
  • ReadOnlyMany  - 卷以只读方式挂载到多个节点
  • ReadWriteMany - 卷以读写方式挂载到多个节点
 
在CLI(命令行界面)中,访问模式缩写为:
  • RWO - ReadWriteOnce
  • ROX - ReadOnlyMany
  • RWX - ReadWriteMany
特别注意:  卷只能一次使用一种访问模式安装,即使它支持很多。
 
关于回收策略
  • Retain  -  手动回收。在删除pvc后PV变为Released不可用状态, 若想重新被使用,需要管理员删除pv,重新创建pv,删除pv并不会删除存储的资源,只是删除pv对象而已;若想保留数据,请使用该Retain
  • Recycle -  基本擦洗(rm -rf /thevolume/*)。 删除pvc自动清除PV中的数据,效果相当于执行 rm -rf /thevolume/*。删除pvc时,pv的状态由Bound变为Available。此时可重新被pvc申请绑定。
  • Delete  -  删除存储上的对应存储资源。关联的存储资产(如AWS EBS,GCE PD,Azure磁盘或OpenStack Cinder卷)将被删除。NFS不支持delete策略。
 
目前,只有NFS和HostPath支持回收。AWS EBS,GCE PD,Azure磁盘和Cinder卷支持删除。
 
关于PersistentVolume (PV) 状态
  • Available(可用状态)   -   一块空闲资源还没有被任何声明绑定
  • Bound(绑定状态)       -   声明分配到PVC进行绑定,PV进入绑定状态
  • Released(释放状态)    -   PVC被删除,PV进入释放状态,等待回收处理
  • Failed(失败状态)      -   PV执行自动清理回收策略失败
 
关于PersistentVolumeClaims (PVC) 状态
  • Pending(等待状态)     -   等待绑定PV
  • Bound(绑定状态)       -   PV已绑定PVC
posted @ 2021-03-08 18:54  散尽浮华  阅读(2175)  评论(0编辑  收藏  举报