K8s ❉ 高级存储-PV / PVC详解

一 介绍

1 基本理念


        前面已经学习了使用NFS提供存储,此时就要求用户会搭建NFS系统,并且会在yaml配置nfs。由于kubernetes支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,以便用户使用,kubernetes引用PV和PVC两种资源对象。

  • PV(Persistent Volume)是持久化卷的意思,是对底层的共享存储的一种抽象。一般情况下PV由kubernetes管理员进行创建和配置,它与底层具体的共享存储技术有关,并通过插件完成与共享存储的对接。
  • PVC(Persistent Volume Claim)是持久卷声明的意思,是用户对于存储需求的一种声明。换句话说,PVC其实就是用户向kubernetes系统发出的一种资源需求申请。

使用了PV和PVC之后,用作可以得到进一步的细分:

  • 存储:存储工程师维护
  • PV: kubernetes管理员维护
  • PVC:kubernetes用户维护

 K8s ❉ 高级存储-PV / PVC详解_第1张图片

2 生命周期

 K8s ❉ 高级存储-PV / PVC详解_第2张图片

         PVC和PV是一一对应的,PV和PVC之间的相互作用遵循以下生命周期:

(1)资源供应

管理员自动创建底层存储和PV

(2)资源绑定

        用户创建PVC,kubernetes负责根据PVC的声明去寻找PV,并绑定
        在用户定义好PVC之后,系统将根据PVC对存储资源的请求在已存在的PV中选择一个满足条件的:

  • 一旦找到,就将该PV与用户定义的PVC进行绑定,用户的应用就可以使用这个PVC了
  • 如果找不到,PVC则会无限期处于Pending状态,直到等到系统管理员创建了一个符合其要求的PV

        PV一旦绑定到某个PVC上,就会被这个PVC独占,不能再与其他PVC进行绑定了

(3)资源使用

        用户可在Pod中像Volume一样使用PVC,Pod使用Volume的定义,将PVC挂载到容器内的某个路径进行使用

(4)资源释放

        用户删除PVC来释放PV。

        当存储资源使用完毕后,用户可以删除PVC,与该PVC绑定的PV将会被标记为“已释放”,但还不能立刻与其他PVC进行绑定。通过之前PVC写入的数据可能还被留在存储设备上,只有在清除之后该PV才能再次使用。

(5)资源回收

        kubernetes根据PV设置的回收策略进行资源的回收
        对于PV,管理员可以设定回收策略,用于设置与之绑定的PVC释放资源之后如何处理遗留数据的问题。只有PV的存储空间完成回收,才能供新的PVC绑定和使用

你可能感兴趣的:(云计算,kubernetes,容器)