设置主机路径卷可以消耗多少空间

时间:2021-01-26 03:41:13

标签: kubernetes

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

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

2 个答案:

答案 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)。 数量没有限制 emptyDirhostPath 卷可以消耗的空间,并且没有隔离 容器之间或 Pod 之间。

*一如既往:)

编辑:

包括来自 VASャ 的建议,并将答案设为社区维基。

<块引用>

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