Microk8s 主机路径 FS 使用 PVC

Microk8s Hostpath FS Usage of PVC

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

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

  • Pods 从相同的 pod 模板创建可能在不同的节点上表现不同,因为这些节点上的 hostPath file/dir 内容不同

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

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

正如您已经发现的那样,从 hostPath 转向其他东西是个好主意。