将容器中的文件夹公开为 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 应用程序容器中。
我有一个包含两个容器的容器。一个容器是一个 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 应用程序容器中。