我可以在pod中的容器之间共享一个文件吗?

时间:2017-08-24 17:27:11

标签: kubernetes

我的pod有两个容器 - 一个主容器和一个sidecar容器,用于监视主容器中的/var/run/utmp文件,并在更改时采取操作。我试图弄清楚如何在边车容器中看到这个文件。

This page描述了如何使用emptyDir卷在pod中的容器之间共享目录。但是,这似乎只适用于目录,而不是单个文件。我也无法使用此策略来共享主容器中的整个/var/run/目录,因为在那里安装卷会擦除容器需要运行的目录内容。

我尝试通过在另一个目录中创建utmp的符号链接并安装该目录来解决此问题,但它看起来不像卷中的符号链接以它们需要的方式解析这个工作。

有什么办法可以让容器中的一个文件对同一个pod中的其他容器可见?我试验的清单看起来像这样:

apiVersion: v1
kind: Pod
metadata:
  name: utmp-demo

spec:
  restartPolicy: Never

  containers:
  - name: main
    image: debian
    command: ["/bin/bash"]
    args: ["-c", "sleep infinity"]
    volumeMounts:
    - name: main-run
      mountPath: /var/run  # or /var/run/utmp, which crashes

  - name: helper
    image: debian
    command: ["/bin/bash"]
    args: ["-c", "sleep infinity"]
    volumeMounts:
    - name: main-run
      mountPath: /tmp/main-run

  volumes:
  - name: main-run
    emptyDir: {}

1 个答案:

答案 0 :(得分:1)

如果您可以将文件移动到空子文件夹中共享,这可能是一个简单的解决方案。

例如,将文件移动到/ var / run / utmp / utmp并使用emptydir共享/ var / run / utmp文件夹。