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

Expose folder from a container as a volume in a Kubernetes Pod

我有一个包含两个容器的容器。一个容器是一个 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

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