1

我正在尝试监视 k8s 中 pod 的文件系统使用情况。我正在使用 Kubernetes (microk8s) 和 hostpath 持久卷。我和一些生产者一起运行 Kafka,看看当我超过 PVC 大小限制时会发生什么。我尝试从 API 服务器获取信息,但那里没有报告。因为它只使用主机路径,所以这是有道理的。它不是一个动态音量系统。在主机上执行 df 只会显示与根文件系统具有相同利用率的所有卷。这与在容器中使用 exec -- df 的结果相同。使用 api 服务器的容器上没有 pvcRefs,这可以解释为什么仪表板没有此信息。这是一个死胡同还是有人有办法绕过这个限制?我现在想知道是否会强制执行 PVC 限制。

4

1 回答 1

0

由于hostPath您的数据直接存储在工作人员身上,您将无法监控使用情况。UsinghostPath有很多缺点,虽然它有利于测试,但不应该用于某些产品系统。将数据直接保存在节点上是危险的,在节点故障/更换的情况下,您将丢失它。其他缺点是:

  • 从同一 pod 模板创建的 pod 在不同节点上的行为可能会有所不同,因为这些节点上的 hostPath 文件/目录内容不同

  • 在主机上使用 HostPath 创建的文件或目录只能由 root 写入。这意味着,您要么需要以 root 身份运行容器进程,要么将主机上的文件权限修改为非 root 用户可写,这可能会导致安全问题

  • hostPath卷不应与 Statefulsets 一起使用。

正如您已经发现的那样,从hostPath其他方面继续前进是个好主意。

于 2021-03-23T08:40:12.357 回答