存储类是否动态地为每个Pod设置持久卷?

问题描述 投票:2回答:2

这里是Kubernetes新手,所以我的问题可能没有道理。请忍受我。

所以,我的问题是,鉴于我在群集中设置了存储类,然后有了PVC(使用该存储类)。如果我在部署中使用该PVC,并且该部署有5个副本,那么存储类会创建5个PV吗?每个吊舱一个?还是该部署下的所有Pod仅共享1个PV?

编辑:在这个集群中我也有3个节点

提前感谢。

kubernetes
2个回答
1
投票

Persistent Volume Claim资源与部署分开指定。部署有多少个副本都没有关系,kubernetes只会具有您定义的PVC资源的数量。

[如果要查找创建它们自己的PVC的多个有状态容器,请改用StatefulSet。这包括VolumeClaimTemplate定义。

如果您希望所有部署副本共享一个PVC,则存储类提供程序插件必须为ReadOnlyMany or ReadWriteMany


0
投票

直接回答我的问题。

在这种情况下,存储类将仅提供一个PV,并且在使用该PVC的Deployment中的所有Pod之间共享。

PVC的accessModes不会规定是否为每个Pod创建一个PV。您可以将accessModes设置为ReadWriteOnce / ReadOnlyMany / ReadWriteMany,它将始终创建1个PV。

如果您希望每个Pod都有其自己的PV,则无法在Deployment下执行此操作

您将需要使用volumeClaimTemplates使用StatefulSet

StatefulSet使用volumeClaimTemplates是很重要的,否则,它仍将与Deployment相同,即存储类将只提供一个在该StatefulSet下的所有Pod中共享的PV。

Kubernetes Deployments vs StatefulSets

© www.soinside.com 2019 - 2024. All rights reserved.