🎬 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的临时卷,并分别挂载到 producerconsumer两个容器中。

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社区

更多推荐