12|存储:PV的生命周期与动态供应
王雪飞
你好,我是雪飞。
上节课最后,我带你动手部署了 PV 和 PVC,PV 代表了 K8s 集群中的存储资源,而 PVC 是 Pod 对 PV 存储资源的需求声明。PVC 找到合适的 PV 绑定,而 Pod 通过挂载 PVC 从而使用 PV 定义的存储资源。现在,你可以思考一下,如果我们要删除这个 Pod 和 PVC,那么我们在 PV 存储资源中创建的共享文件会被删除吗?
要回答这个问题,就需要了解 PV 的生命周期。
PV 的生命周期
查看 PV 信息时,返回结果中有个 STATUS 字段,它表示 PV 的状态。在 PV 的生命周期中,可能会有以下四种状态:
Available(可用):表示 PV 处于可用状态,还未被任何 PVC 绑定。
Bound(已绑定):表示 PV 已经被 PVC 绑定。
Released(已释放):表示 PV 被解绑,但是 PV 及存储空间的数据还保留。
Failed(失败): 表示该 PV 的自动回收失败。
下面我们结合 PVC 和 PV 的使用流程,介绍一下 PV 的生命周期及状态变化:
Provisioning:供应 PV,也就是创建 PV 的过程,有静态和动态两种创建 PV 的方式。
Static:静态供应 PV,通常由管理员或运维人员按照业务需求手动对集群的存储资源进行划分,提前创建并部署好多个 PV,这时 PV 的状态是 Available(可用),等待 PVC 进行绑定和使用。
Dynamic:动态供应 PV,这种方式不需要提前创建 PV,而是 K8s 通过第三方插件(Provisioner)来为 PVC 动态创建 PV 存储资源。
Binding:绑定 PV,创建 PVC 之后,K8s 会根据这个 PVC 的存储资源需求在集群中寻找满足条件的 PV。如果找到合适的 PV,就会将该 PV 资源绑定到 PVC 上,这时 PV 的状态是 Bound(已绑定)。在找到可用的 PV 之前,PVC 会保持未绑定状态。如果是动态供应,则 PV 的创建和绑定是同时完成的。
Using:使用 PV,应用 Pod 通过在容器中挂载 PVC,从而使用 PVC 绑定的 PV 定义的存储资源。应用就可以在挂载目录中进行目录和文件的操作,从而实现文件的共享和持久化。
Releasing 和Recycling:释放和回收 PV,删除 PVC 可以释放或者删除绑定的 PV。这时候会根据创建 PV 的 YAML 文件中的 “persistentVolumeReclaimPolicy” 回收策略,来决定 PV 的操作和状态。
Retain(保留):默认策略,此时 PV 状态将变成 Released(已释放),同时还保留着之前的数据,管理员需要手动处理 PV 以及数据,这样可以减少数据丢失风险。Released 状态的 PV 不能被其他 PVC 绑定。
Delete(删除):这个策略会在删除 PVC 时自动删除 PV 资源,同时删除存储资源中的数据。通常用于动态供应 PV 的方式,需要存储资源提供的插件的支持,否则 PV 状态为 Failed(失败)。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. PV 的生命周期包括可用、已绑定、已释放和失败四种状态,对应着供应、绑定、使用、释放和回收的过程。 2. PV 的供应方式有静态和动态两种,动态供应需要了解 StorageClass,它定义了存储类型的配置参数、数据回收策略和供应器插件等信息。 3. 安装 NFS Provisioner 可以实现动态供应 NFS 存储类型的 PV,需要下载并部署相应的 YAML 文件。 4. StatefulSet 资源对象解决了有状态应用的部署中的应用顺序、网络标识和持久化存储问题。 5. StatefulSet 为每个 Pod 自动分配固定的网络标识(DNS 名称),确保网络通信的一致性和可靠性。 6. StatefulSet 允许为每个 Pod 定义独立的 PVC 和 PV,保障了应用数据的持久性和一致性。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《零基础拿下云原生 CKA 认证》,新⼈⾸单¥59
《零基础拿下云原生 CKA 认证》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论