kubernetes 部署中的 emptyDir 与 hostPath 卷类型使用情况

DT.*_*DT. 2 kubernetes

在 kubernetes 部署上使用 emptyDir 与 hostPath(和其他)卷类型

从官方文档中可以看出,当将emptyDir与POD一起使用时。 容器崩溃不会从节点中删除 Pod,因此,emptyDir 卷中的数据在容器崩溃时是安全的

所以我想知道我们是否可以使用emptyDir卷类型以及(节点选择器/亲和性)使用强制POD固定到给定节点,以某种方式强制POD的内容在升级(推出)时保留? 或 hostPath (或其他卷类型)是我们在设计时需要考虑的,以确保即使在重新创建 POD 的转出过程中数据也能持久保存,而不管节点固定如何(我们可以灵活地将此应用程序固定到集群中的大型节点)

Nor*_*des 5

您可能知道,当您升级部署时,它会创建一个新的 POD,一旦运行它就会终止您以前的 POD。在这种情况下,emptyDir将被删除(终止 Pod)。正如您所提到的,hostPath如果您有节点选择器/关联性,则可以使用 a ,并且在这种情况下,该文件夹将与 pod 的所有实例共享(如果副本 > 1)。这实际上是@Matt 的答案。

emptyDir或多或少是您在应用程序的生命周期中使用的临时文件夹。您不应该存储重新启动时所需的数据。Kubernetes 文档中的某处指出,如果出现问题(例如:自动修复),可以从节点中删除 pod 或将其杀死。