首页 > 解决方案 > kubernetes 卷:复制的 Pod 之间的一个共享卷和一个专用卷

问题描述

我是 Kubernetes 的新手并且正在学习它。有部署类型的 pod 和 replcas=3。

有什么方法可以为每个 pod 安装单独的卷,为所有 pod 安装一个卷。要求:

案例 1- 我的应用程序正在生成一些临时文件名 tempfile.txt,因此有三个副本 pod,每个副本都会生成 tempfile.txt,但内容可能不同。因此,如果我使用将相互覆盖的共享卷。
case-2:我有一个不属于图像的公共文件,所有启动应用程序的 pod 都将使用该文件,即将文件从主机复制到所有 pod 的容器

提前致谢。

标签: kuberneteskubernetes-pod

解决方案


有多种方法可以实现第一部分。这是我的:

代替部署,使用 statefulSet 创建副本。statefulSets 允许您包含每个 pod 使用它创建的卷模板,因此每个新 pod 都会有一个专门为其创建的新 PV。

这确实需要您的集群允许动态供应卷

根据 tempfile.txt 的大小、用例和集群/节点配置,您可能还需要考虑使用将使用节点本地存储的hostPath卷。

对于您问题的第二部分,使用任何 readWriteMany 卷都可以(例如任何 NFS 选项)。

在 subPath 的注释中,这也应该有效,只要您为每个 pod 定义不同的 subPath。DT 提供的链接中的示例通过基于 pod 名称创建子路径来做到这一点。


推荐阅读