有没有办法在 kubernetes 部署(或 statefulset)中为每个 pod 创建一个持久卷?
Posted
技术标签:
【中文标题】有没有办法在 kubernetes 部署(或 statefulset)中为每个 pod 创建一个持久卷?【英文标题】:Is there a way to create a persistent volume per pod in a kubernetes deployment (or statefulset)? 【发布时间】:2019-04-23 08:30:22 【问题描述】:我目前正在创建一个 kubernetes 部署,在此部署中,我将副本值设置为 X,并且我想在重新启动相应的 pod 时创建不为空的 X 卷。 我没有使用任何云提供商基础设施,那么请避免使用云服务的命令。
我一直在 kubernetes 文档中寻找答案,我的第一次尝试是为每个绑定到 pv 的 pod 创建一个巨大的持久卷和一个持久卷声明,但它似乎不起作用......
我的期望是有 X 卷不在 pod 之间共享,并且在 pod 因 liveness 探测而被杀死时不会死亡。 我知道任何可以解决问题的可能性!
【问题讨论】:
如果您不使用云服务,您可以使用类似物来处理裸机,例如glusterfs
或 ceph
。
我听说过 glusterfs,但它似乎是一个非常贪婪的资源,而且部署起来并不容易,如果存在的话,我正在寻找一个轻量级... Ceph 看起来更容易,我会尝试了解它;)
【参考方案1】:
部署副本都使用相同的卷。目前不可能为每个副本创建独立的卷。
StatefulSets 可以定义volumeClaimTemplates,这意味着每个副本一个或多个独立的卷。为此,StorageClass 必须能够进行动态卷配置。
【讨论】:
以上是关于有没有办法在 kubernetes 部署(或 statefulset)中为每个 pod 创建一个持久卷?的主要内容,如果未能解决你的问题,请参考以下文章