将文件注入Pod的最佳方法是什么?

时间:2020-05-11 08:37:52

标签: kubernetes kubernetes-pod configmap

将文件注入Pod的最佳方法是什么? 我使用configMap做到了,但是现在我有一个大于1MB的xml文件,因此需要找到其他方法。该文件位于git存储库中。

2 个答案:

答案 0 :(得分:2)

您可以将其存储在volumemount该卷的容量中。

答案 1 :(得分:2)

@Arghya Sadhu提到

您可以将其存储在volumemount该卷中,并放入容器中。


有一个名为gitRepo的存储,这可能是最适合您的解决方案,但是现在不推荐使用。

警告:gitRepo卷类型已弃用。要为带有git存储库的容器提供资源,请将EmptyDir装入InitContainer中,该容器使用git克隆存储库,然后将EmptyDir安装到Pod的容器中。

emptyDir

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中存储的更多信息,请在此处查看:

相关问题