我使用带有 hostPath 的卷,因此我可以在本地主机和 Pod 之间共享文件。我的问题是:有没有办法限制主机路径卷可以被这些 pod 消耗多少空间,比如临时存储请求/限制?如果容器消耗了主机本地目录上的所有空间,会发生什么情况?
volumes:
- hostPath:
path: "/search/data/app"
name: app
答案 0 :(得分:0)
没有。这不是当前功能。
答案 1 :(得分:0)
@coderanger 和 @DavidMaze 是对的*,但我想用更多的上下文来支持它。
<块引用>hostPath 卷从主机节点的 文件系统到您的 Pod。这不是大多数 Pod 会做的事情 需要,但它为某些应用程序提供了强大的逃生舱口。
例如,hostPath
的一些用途是:
运行一个需要访问 Docker 内部的容器;使用 hostPath
的 /var/lib/docker
在容器中运行 cAdvisor;使用 hostPath
的 /sys
允许 Pod 在 Pod 运行之前指定给定的 hostPath
是否应该存在,是否应该创建它,以及它是什么
应该作为
hostPath
,原因如下:
您无法直接控制 pod 将在哪个节点上运行,因此您不能保证 pod 会实际调度到具有数据量的节点上。
您将集群暴露在安全威胁之下。
如果某个节点出现故障,您需要将 pod 安排在其他节点上,而您的本地配置卷在该节点上将不可用。
关于潜在的limiting of the hostPath
volumes:
emptyDir
卷的存储介质(例如磁盘或 SSD)是
由保存 kubelet 根的文件系统的介质决定
dir(通常为 /var/lib/kubelet
)。 数量没有限制
emptyDir
或 hostPath
卷可以消耗的空间,并且没有隔离
容器之间或 Pod 之间。
*一如既往:)
编辑:
包括来自 VASャ 的建议,并将答案设为社区维基。
<块引用>我会尝试创建单独的 LVM 分区并使用它们的挂载点 作为 Pod 的 Hostpath 目标目录。在这种情况下,容器不会 消耗超过 LVM 分区大小。它可能会增加一些维护 成本虽然。考虑使用 iscsi 卷作为替代 存储选项。