我已经将需要使用多个CSV(〜2gb)的python项目进行泊坞处理。为了减小图像大小,我没有在构建中包括CSV,而是选择通过卷将容器外部目录中的数据提供给正在运行的容器。在本地,通过docker运行时,我可以做
docker run -v ~/local/path/:/container/path my-image:latest
这有效,但是我不确定如何在Kubernetes中进行此操作。我一直在阅读文档,对卷类型的数量,应存储实际CSV的位置等感到困惑。
根据我提供的项目信息,有明显的解决方案吗?
答案 0 :(得分:1)
如果您想从Docker复制该确切行为,最常见的方法是使用hostPath。像这样:
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: my-image:latest
name: my-container
volumeMounts:
- mountPath: /container/path
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /usr/local/path
type: Directory
答案 1 :(得分:0)
这是容器之间共享的典型示例。您可以将数据保存在单独的容器中,而将代码保存在其他容器中。
apiVersion: v1
kind: Pod
metadata:
name: two-containers
spec:
restartPolicy: Never
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: nginx-container
image: nginx
volumeMounts:
- name: shared-data
mountPath: /usr/share/nginx/html
- name: debian-container
image: debian
volumeMounts:
- name: shared-data
mountPath: /pod-data
command: ["/bin/sh"]
args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]
希望有帮助。