首页 > 解决方案 > 如果 pod 死亡并在另一个节点上再次上升,kubernetes 的 HostPath 卷会发生什么情况?

问题描述

如果 pod 死亡并在另一个节点上再次上升,kubernetes 的 HostPath 卷会发生什么情况?

我猜一个新上升节点上的新 pod 不会看到它?卷会永远存在并泄漏磁盘空间吗?

什么是防止这种情况的正确解决方案?

标签: kuberneteskubernetes-podpersistent-volumes

解决方案


主机路径卷是一种“逃生舱”。没有特别的持久性、生命周期或任何与它们相关的东西。如果一个 pod 被重新调度到另一个节点上,那么

  1. 它将在另一个节点上看到相同主机目录的内容,这些内容可能相同也可能不同,并且

  2. 如果您将应用程序数据存储在第一个节点上的该主机目录中,它实际上将成为“孤立的”。

这使得主机路径卷不能很好地匹配正常的应用程序数据;选择几乎任何其他存储类型。

我看到它们被有效使用的地方是你确实需要管理一些通常存在于主机系统上的数据。例如,标准的 fluentd Kubernetes 部署/var/lib/docker/containers在一个守护进程集中运行 fluentd,以从集群中的每个节点上收集日志;这是由主机 Docker 守护进程管理的数据,而不是由任何特定容器管理的数据。因为它由一个守护程序集管理,所以它在每个节点上运行,所以如果一个节点删除了它的日志,它的日志转发器也将随之消失,这是意料之中的。


推荐阅读