Docker/Kubernetes 无需重启容器即可更改卷数据

Docker/Kubernetes 无需重启容器即可更改卷数据

我们的应用程序正在使用一个目录中的一些附加文件。现在,当其中一些文件发生更改时,我们需要登录到每个应用程序容器克隆存储库并将文件复制到目录中。我们希望自动执行此过程,而无需重建/重新启动整个应用程序。

是否有一些本机方法可以处理这样的事情?

我正在考虑使用由所有容器使用/共享的 docker 卷,以及何时需要重建卷。如果不重新启动使用此卷的容器,它会像我预期的那样工作吗?

或者也许对这种情况有更好的解决方案,例如 NFS 卷?

答案1

看看 PersistentVolume访问模式矩阵。您正在寻找的是 ROX 或 RWX 支持。ROX 更常见,但您需要一些辅助进程来更新内容。RWX 为您提供从任何 pod 更改这些卷上的内容的完全访问权限。

从定义上来说,ROX 支持的范围更广,因为您不需要分布式写锁定,所以如果您可以处理这个问题(我认为在您的情况下这是很有可能的),这将是可以存储您更改数据的共享 PV 的最佳选择。

答案2

看起来您已经找到了利用 NFS 挂载卷的解决方案。对于阅读本文并寻求类似解决方案的人来说,还有许多其他卷选项可供选择。

如果您只需要单个节点上的 Pod 能够访问卷,则此处的访问模式“ReadWriteOnce”选项桌子显示可能合适的卷类型。

如果你需要你的 pod(无论是在同一个节点还是不同的节点上)只读取卷中的信息,那么其他一些“ReadOnlyMany”选项也可能适用(请参阅表格这里)。

还有一些用于安装卷的选项,允许对同一组中属于“ReadWriteMany”访问模式的多个节点进行读/写访问桌子

由于选项数量众多,有些选项可能更适合每种用例,但可以找到更多信息这里关于每种卷的具体信息。

相关内容