小编ano*_*ser的帖子

有没有一种方法可以在 kubernetes 中跨容器共享具有读写访问权限的文件

我刚刚开始探索 Kubernetes 概念。我正在使用 Helm Chart 来部署 Pod。被困于解决以下问题。任何人都可以帮我解决这个问题。

我有三个容器,比如说 A、B 和 C。容器 A 有一个文件 =>“/root/dir1/sample.txt”。否则,我可以离线准备该文件,但需要安装在所有三个容器中。容器 A 和容器 C 正在运行一个服务,该服务将更新该文件。容器 B 正在运行一个服务来读取该文件。因此,我需要在所有三个容器之间共享此文件。

方法 1:使用emptyDir 卷,我尝试安装此文件,但它对我的情况没有帮助。因为当我使用 emptyDir 时,我会丢失 dir1 下通过容器映像提供的所有文件。另外,我不希望 dir1 下的其他文件在容器之间共享。除此之外,我需要将文件安装为相同的目录结构“/root/dir1/sample.txt”,而不是创建空目录,将“/root/dir2”作为共享数据安装并将sample.txt复制到dir2作为“ /root/dir2/sample.txt”。Reason 现在正在所有三个容器中安装 /root/dir2 (文件写入发生在任何容器中,反映在其他容器中)。但这对我的情况没有帮助,因为我需要将文件安装为相同的目录结构“/root/dir1/sample.txt”。

方法 2:使用 configmap 卷,我可以按预期将文件“sample.txt”挂载到 dir1 下。但它被挂载为只读文件系统,容器 A 和 C 无法写入该文件。

所以上述两种方法对我的情况没有帮助。如果有人帮助我如何将文件直接挂载到具有相同目录结构下的写访问权限并在容器之间共享的容器中,那就太好了。或者 kubernetes 中可用的任何卷类型都会对我的情况有所帮助(https://kubernetes.io/docs/concepts/storage/volumes/#cinder)。

提前致谢!

kubernetes

4
推荐指数
1
解决办法
3541
查看次数

如何从 shell 脚本内的 yaml 文件读取特定数据

我有一个 yaml 文件,名为“test.yaml”。以下是yaml文件的内容。

...
test:
  config:
    abc: name1
    xyz: name2
...
Run Code Online (Sandbox Code Playgroud)

现在我想从 shell 脚本内的 yaml 中单独读取 abc 和 xyz 的值,并将其存储在 shell 脚本内的两个变量中。test.yaml 文件包含除上述数据之外的其他数据,我不需要在这个 shell 脚本中关心这些数据。

例如:test.sh

var1=name1 //test[config[abc]]
var2=name2 //test[config[xyz]]
Run Code Online (Sandbox Code Playgroud)

如何从 shell 脚本内的 yaml 读取特定数据(作为键值)。如果有人帮助我解决这个问题,那将会非常有帮助。提前致谢!!!

bash shell yaml

2
推荐指数
1
解决办法
7212
查看次数

标签 统计

bash ×1

kubernetes ×1

shell ×1

yaml ×1