将容器中的文件夹公开为 Kubernetes Pod 中的卷

Ale*_*ski 3 docker kubernetes docker-volume

我有一个包含两个容器的容器。一个容器是一个 Web 应用程序,另一个容器存储该 Web 应用程序的一些静态数据。

这里的数据是一组文件,它们以名称存储在该容器的文件夹中,/data这只是容器存储这些数据并将其公开给 Web 应用程序的功能。

我正在寻找与此 Pod 中的 Web 应用程序容器共享此文件夹的内容的方法。

如果我使用 YAML 规范,两个容器中的文件夹下面都是空的。有没有办法在不清理容器文件夹的情况下共享数据?

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  labels:
    app: my-app
    version: 1.2.3
spec:
  volumes:
    - name: my-app-data-volume

  containers:
    - name: my-app-server
      image: my-app-server-container-name
      volumeMounts:
        - name: my-app-data-volume
          mountPath: /data
      ports:
        - containerPort: 8080

    - name: my-app-data
      image: my-app-data-container-name
      volumeMounts:
        - name: my-app-data-volume
          mountPath: /data
Run Code Online (Sandbox Code Playgroud)

Jam*_*mie 5

为此,您可以使用EmptyDir卷。将包含文件的容器指定为initContainer,然后将文件复制到 EmptyDir 卷中。最后,将该卷安装到 Web 应用程序容器中。