将数据从一个Kubernetes容器共享到同一容器中的另一个容器

时间:2018-11-28 00:25:53

标签: kubernetes

我的Pod中有两个容器:

  • 基于我自己的Dockerfile的容器A。在此Dockerfile中,有COPY ./files /my-files命令。该图像在我的GitLab Docker注册表中。
  • 基于来自hub.docker.com的图像的容器B。

我想将存储在/ my-files中的容器A中的数据共享给容器B。我认为我需要在此容器中创建一个volume(不是持久性数据),并{ {1}}到容器。

不幸的是,当我使用volumeMountsvolumeMounts添加到容器A时,此目录被清空,并且在创建映像时没有添加文件。

我应该怎么做才能保留这些数据并与Container B共享。

这是我的Deployment.yaml文件的一部分:

mountPath: /my-files

1 个答案:

答案 0 :(得分:0)

一个丑陋的黑客,使用init容器将数据复制到emptyDir卷中,然后将卷装入第二个容器中。

  initContainers:
    - name: init-config-data-copy-wait
      image: datacontainer
      command:
        - sh
        - "-ce"
        - |
          set -ex
          cp -r /src-data/* /dst-data/
          ls /dst-data/
      volumeMounts:
        - mountPath: /dst-data
          name: dst-data-volume

  volumes:
    - name: dst-data-volume
      emptyDir: {}