设置主机路径卷可以占用的空间限制



我使用带有hostPath的卷,因此我可以在本地主机和pod之间共享文件。我的问题是:是否有一种方法可以限制主机路径卷可以由这些pod消耗多少空间,如临时存储请求/限制?如果容器消耗了主机本地目录上的所有空间,会发生什么情况?

volumes:
- hostPath:
path: "/search/data/app"
name: app

No。这不是当前的功能

@coderanger和@DavidMaze是对的*但我想用更多的背景来支持它。

hostPath卷从主机节点上挂载文件或目录将文件系统放入您的Pod。这不是大多数pod所能做到的需要,但它为某些应用程序提供了一个强大的逃生舱口。

例如,hostPath的一些用法如下:

  • 运行一个需要访问Docker内部组件的容器;使用/var/lib/dockerhostPath

  • 在容器中运行cAdvisor;使用/sys

    hostPath
  • 允许Pod指定给定的hostPath是否应该在Pod运行之前存在,是否应该创建,以及它是什么应该以

    形式存在

由于以下几个原因,不建议使用hostPath:

  • 您不能直接控制您的pod将在哪个节点上运行,因此您不能保证pod实际上将在具有数据量的节点上调度。

  • 你将你的集群暴露在安全威胁中。

  • 如果一个节点宕机,您需要将pod调度到其他节点上,而您本地配置的卷将不可用。

关于hostPath卷的潜在限制:

emptyDir卷的存储介质(如Disk或SSD)为由保存kubelet根文件系统的介质决定dir(通常是/var/lib/kubelet)。没有限制emptyDirhostPath卷可以占用的空间,并且没有隔离

*一如既往:)

编辑:

包括VAS的建议,并使答案成为社区wiki。

我会尝试创建单独的LVM分区并使用它们的挂载点作为Pod的Hostpath目标目录。在这种情况下,容器不会消耗的内存大于LVM分区大小。它可能会增加一些维护尽管成本。考虑使用iscsi卷作为替代方案存储选择。

最新更新