管理员准备存储后端并创建 PV​​:管理员首先需要在外部准备好存储设施(例如搭建一个 NFS 服务器),然后在 Kubernetes 集群中定义一个 PV,指明这块存储的容量、访问模式等信息。此时,PV 处于可用状态,等待被申请
。
​​用户申请存储并创建 PVC​​:用户在部署应用(Pod)时,通过创建 PVC 来声明所需要的存储特性,例如需要 10Gi 的、可读写访问的存储。Kubernetes 的持久化存储控制器会为 PVC 寻找一个匹配的 PV,并将它们“绑定”起来
。
​​Pod 挂载并使用存储​​:在 Pod 的定义文件中,在 volumes字段引用上一步中已绑定的 PVC。当 Pod 被调度到某个节点后,该节点上的 kubelet会执行挂载操作,将远端的存储(如 NFS)挂载到 Pod 中容器指定的路径上。之后,容器就可以像使用本地目录一样使用这份持久化存储了。

应用场景对比

临时数据共享​​:Pod 内多容器需要共享临时数据,使用 ​​emptyDir​​。
​​节点级别数据持久化​​:需要访问节点特定文件(如日志、 Docker 套接字)且能接受存储与节点绑定的场景,可使用 ​​hostPath​​,但需注意其局限性。
​​跨节点数据持久化与共享​​:对于需要数据持久化,或多个 Pod(尤其是在不同节点上)需要共享同一份数据的应用(如应用静态文件、数据库),推荐使用基于 ​​网络存储(如 NFS)的 PV/PVC​​ 模式。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐