在k8S中,PV生命周期内的阶段有哪些?
在 Kubernetes (k8S) 中,PersistentVolume (PV) 的生命周期内包含以下几个关键阶段:
-
Available(可用):
PV 在这个阶段被创建并添加到集群中,它具有特定的存储容量、访问模式和持久化策略。在这个状态下,PV 是未被任何 PersistentVolumeClaim (PVC) 绑定的,等待被 PVC 请求和使用。 -
Bound(已绑定):
当一个或多个 PVC 根据它们的需求请求存储时,如果某个 PV 的规格与 PVC 完全匹配且 PV 处于 Available 状态,Kubernetes 会将 PV 与 PVC 进行绑定。绑定后,PV 的状态变为 Bound,并将其存储资源分配给对应的 PVC 所关联的 Pod 使用。 -
Released(已释放):
如果一个已绑定的 PV 关联的 PVC 被删除,并且其回收策略设置为Retain
或某些情况下自动触发,PV 将进入 Released 状态。此时,虽然 PV 不再被任何 PVC 使用,但它仍保留着之前的数据,并等待管理员手动清理数据或决定是否重新使用。 -
Pending Release(待释放):
在某些特定场景下,例如动态 Provisioned PVs 使用了 StorageClass 的 reclaimPolicy 为Delete
或Recycle
,当关联的 PVC 删除时,PV 可能会处于 Pending Release 状态,等待执行相应的数据清理或资源回收操作。 -
Failed(失败)
PV 在尝试进行某种操作(如挂载、卸载或清理等)时,如果遇到错误,可能进入 Failed 状态。 -
Lost(丢失)
在某些罕见的情况下,比如底层存储出现问题导致 Kubernetes 无法管理该 PV,那么 PV 可能会被标记为 Lost 状态。 -
Terminating(终止)/Deleted(已删除)
当 PV 需要被永久移除时,管理员可以手动删除 PV,或者根据 PVC 的回收策略自动删除 PV。PV 进入 Terminating 阶段后,系统会依据配置进行必要的清理工作,然后最终从集群中删除 PV。
综上所述,PV 的具体生命周期阶段可能会根据具体的实现和版本有所差异,但上述内容涵盖了大部分通用的生命周期状态转换。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性