在 Kubernetes 中,您可以创建一个卷并将其挂载到类型为“HostPath”的 pod 中,以指定存储应由运行该 pod 的节点上的目录提供。
文档中指定“仅进行单节点测试 - 本地存储不受任何支持,并且无法在多节点集群中使用”,但我找不到任何文档为什么那是。
我想到的一个原因是,该路径需要存在于集群中的每个节点上,并且需要保持一致,以便 pod 可以无缝地从一个节点移动到另一个节点。但将 NFS 磁盘安装到所有节点上的一致安装点上是相当容易的,这样就可以满足这个约束。
还有其他原因吗?也许“HostPath”插件不适合生产使用,因为其他插件更有用,编码工作都交给了其他人?
答案1
正如你所说,这是因为数据不会在多个节点之间同步。大概如果一次只有一个 pod 可以访问数据,那么可以跨多个节点执行一些奇怪的同步解决方案,但是对于多个 pod 来说这很快就会成为一个令人头痛的问题。
无需将目录与 nfs 之类的东西同步,只需将其用作卷而不是 HostPath 卷即可。Kubernetes 已经支持 nfs 作为卷,并且还支持许多其他解决方案。