🎬 HoRain云小助手:个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

💡 如何配置 Volume

⚠️ 重要注意事项

💎 简单总结


img

Kubernetes Volume 是 Pod 中能够被多个容器访问的共享目录,它主要解决了容器数据持久化和容器间数据共享的问题。下面这个表格能帮你快速了解核心的 Volume 类型。

类型

持久性

共享范围

典型应用场景

emptyDir​

与 Pod 生命周期一致,Pod 删除后数据丢失

单个 Pod 内的多个容器

临时空间、缓存、合并排序的中间目录

hostPath​

数据存储在节点上,Pod 删除后数据仍保留(但无法跨节点)

单个 Pod(且通常被调度到特定节点)

访问节点系统文件(如 Docker 守护进程数据)、运行日志采集器(如 cAdvisor)

nfs​

数据持久保存在远程 NFS 服务器,独立于 Pod 和节点生命周期

可由集群内多个 Pod 同时读写

网站共享文件目录、应用日志存储

persistentVolumeClaim (PVC)​

数据持久保存,生命周期独立于 Pod

取决于底层 PV 的访问模式(如 ReadWriteOnce, ReadWriteMany)

数据库存储、有状态应用的持久化数据

💡 如何配置 Volume

配置 Volume 需要两个步骤,在 Pod 的 YAML 文件中进行定义。

  1. 定义 Volume(spec.volumes):这一步是声明 Pod 要使用哪个 Volume,并指定其类型和参数。

  2. 挂载 Volume(spec.containers.volumeMounts):这一步是将已定义的 Volume 挂载到容器内部的特定路径。

以下是一个使用 emptyDir的示例,它创建了一个名为 shared-volume的临时卷,并分别挂载到 producer和 consumer两个容器中。

apiVersion: v1
kind: Pod
metadata:
  name: producer-consumer
spec:
  containers:
  - name: producer
    image: busybox
    volumeMounts:
    - mountPath: /producer_dir  # 容器内的挂载路径
      name: shared-volume
    args: [ /bin/sh, -c, "echo 'hello world' > /producer_dir/hello ; sleep 30000" ]

  - name: consumer
    image: busybox
    volumeMounts:
    - mountPath: /consumer_dir  # 另一个容器内的挂载路径
      name: shared-volume
    args: [ /bin/sh, -c, "cat /consumer_dir/hello ; sleep 30000" ]

  volumes:
  - name: shared-volume  # 定义了一个名为 shared-volume 的卷
    emptyDir: {}         # 类型为 emptyDir

⚠️ 重要注意事项

使用 Volume 时,有几点需要特别留意:

  • 数据持久性选择:根据你的业务需求选择合适的 Volume 类型。如果数据可以丢失,使用 emptyDir;如果需要永久保存,务必使用基于网络或云的持久化 Volume(如 NFS、PVC)。

  • hostPath 的局限性:hostPath将 Pod 与特定节点耦合,不利于故障转移和扩展。除非必须访问节点文件系统,否则不建议使用。

  • PVC/PV 是生产环境最佳实践:通过 PersistentVolume (PV)​ 和 PersistentVolumeClaim (PVC),可以将存储的供应(由管理员负责)和使用(由开发者负责)解耦,这是管理持久化存储的首选方式。StorageClass 还能实现存储资源的动态供应。

💎 简单总结

Kubernetes Volume 是你管理工作负载数据的关键工具。你可以根据对数据持久性和共享性的需求,参考表格选择最合适的类型。对于需要持久化的应用,务必关注 PVC/PV 这一核心模式。

希望这份详解对你有帮助。如果你对类似 PVC/PV 这种更高级的存储概念感兴趣,我很乐意继续为你介绍。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐