gpt4 book ai didi

docker - 在 Kubernetes 中的主机和 Pod 容器之间绑定(bind)挂载卷

转载 作者:行者123 更新时间:2023-12-02 20:10:06 26 4
gpt4 key购买 nike

我有一个遗留应用程序,它在 OS 分区的目录之一(例如/config/)中存储了一些 config/stats,我正试图将它作为一个有状态容器运行在 Kubernetes 集群。

我能够将它作为容器运行,但由于容器固有的短暂性,当容器关闭/销毁时,我的容器写入操作系统分区目录/config/的任何数据都会丢失。

我编写了 Kubernetes 部署文件,使容器恢复生机,尽管是在同一主机或另一主机上作为新实例,但这个新容器无法访问之前写入的数据容器实例。

如果它是一个 docker 容器,我可以使用绑定(bind)挂载让它工作,这样容器写入其操作系统分区目录的任何数据都会保存在主机目录中,这样任何新实例都可以访问写入的数据以前的例子。

但我在 Kubernetes 中找不到任何替代方案。

我可以使用主机路径配置,但主机路径配置现在仅适用于单节点 kubernetes 集群。

有没有办法让它在多节点 Kubernetes 集群中运行?除了主机路径配置之外还有其他选择吗?我可以让容器相互通信并在节点之间同步数据,但是我们如何将主机目录绑定(bind)挂载到容器?

提前感谢您的帮助!

最佳答案

这就是您在 POD 定义中的 Volumes 和 VolumeMounts。您对 hostPath 的指导是正确的方向,但是当您在集群中托管数据时(如您所见),您需要不同的卷类型。

看看https://kubernetes.io/docs/concepts/storage/volumes/获取支持的存储后端列表。根据您的基础架构,您可能会找到适合您需求的基础架构,或者您可能需要实际为其中一个(即 NFS 服务器、Gluster、Ceph 等)创建支持服务。

如果你想添加另一个抽象层来制作一个可以在不同环境中工作的通用 list (即,使用基于云提供商的存储,或者只是根据特定需求手动配置)。您会想要熟悉 PV 和 PVC (https://kubernetes.io/docs/concepts/storage/persistent-volumes/),但正如我所说,它们本质上是对基本卷的抽象,因此无论如何您都需要解决第一个问题。

关于docker - 在 Kubernetes 中的主机和 Pod 容器之间绑定(bind)挂载卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47176005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com