将文件注入Pod的最佳方法是什么? 我使用configMap做到了,但是现在我有一个大于1MB的xml文件,因此需要找到其他方法。该文件位于git存储库中。
答案 0 :(得分:2)
答案 1 :(得分:2)
@Arghya Sadhu提到
有一个名为gitRepo的存储,这可能是最适合您的解决方案,但是现在不推荐使用。
警告:gitRepo卷类型已弃用。要为带有git存储库的容器提供资源,请将EmptyDir装入InitContainer中,该容器使用git克隆存储库,然后将EmptyDir安装到Pod的容器中。
emptyDir卷是在将Pod分配给节点时首先创建的,并且只要该Pod在该节点上运行就存在。顾名思义,它最初是空的。 Pod中的容器都可以在emptyDir卷中读取和写入相同的文件,尽管该卷可以安装在每个Container中的相同或不同路径上。如果出于任何原因将Pod从节点中删除,则emptyDir中的数据将被永久删除。
注意:容器崩溃不会从节点中删除Pod,因此,在容器崩溃期间,emptyDir卷中的数据是安全的。
emptyDir的一些用途是:
- 临时空间,例如用于基于磁盘的合并排序
- 检查点很长的计算以从崩溃中恢复
- 保留内容管理器容器在操作过程中获取的文件 网络服务器容器提供数据
默认情况下,emptyDir卷存储在支持该节点的任何介质上-可能是磁盘,SSD或网络存储,具体取决于您的环境。但是,您可以将emptyDir.medium字段设置为“ Memory”,以告诉Kubernetes代您安装tmpfs(RAM支持的文件系统)。尽管tmpfs很快,但请注意,与磁盘不同,tmpfs在节点重新启动时会清除,并且您写入的任何文件都将计入Container的内存限制。
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir: {}
检查此stackoverflow answer,因为它可能是您正在寻找的解决方案。
如果您想了解有关kubernetes中存储的更多信息,请在此处查看: