【问题标题】:Microk8s Hostpath FS Usage of PVCMicrok8s Hostpath FS PVC的使用
【发布时间】:2021-06-19 10:53:41
【问题描述】:

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

【问题讨论】:

  • 我认为这种回答我的问题。基本上,主机路径存储没有实现这些指标。在其中一个答案上有一个列表。我仍然想知道是否会强制执行存储限制,但我计划将其扩展到多个节点(主机路径不会这样做,至少不是很好)所以我需要在某个时候替换它。我想这没有实际意义。 stackoverflow.com/questions/44718268/…

标签: kubernetes kubernetes-pvc microk8s kubernetes-metrics


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 感谢您花时间回答。我尝试在带有存储插件的 micork8s 集群设置上使用操作员,但失败了。它不考虑主机路径。运行我的应用程序部署是可行的,但它只会将一个节点用于有状态容器(据我目前所见)。其中一些将处于边缘,因此状态性将受到限制。我确实看到许多容器进程以其他用户身份运行(例如 grafana 是 472),但它们的 pvc 都是 root。
猜你喜欢
  • 2020-12-24
  • 2021-06-19
  • 2017-10-08
  • 2016-12-05
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 2022-09-25
相关资源
最近更新 更多