StatefulSet和Deployment在卷方面有什么区别



是的,StatefulSet有助于保留pod的顺序和名称,但它在卷方面比常规Deployment做了什么额外的(或不同的(优势。

作为StatefulSet的用例,我看到了许多数据库主/从设置的例子,但如果只为主设置Deployment(副本=1(,为从设置Deployment(副本=<multiple>(,就不能解决这个问题。对于卷,只需创建一个PV/PVC

有人能告诉我在数量方面有什么区别吗?

所以,是的,StatefulSet有助于保留pod的顺序和名称,但它所做的额外(或不同(是什么,相对于卷而言,它比常规部署更有优势。

使用StatefulSet,每个Pod都有自己的PersistentVolumeClaim,但使用部署时,所有Pod都使用相同的Persistent VolumeClaim。

StatefulSetvolumeClaimTemplates,它从模板中为您创建卷,并在PersistentVolumeClaims的名称上添加-<ordinal>,因此,如果StatefulSet有replicas: 2,则具有my-pvc的名称将是my-pvc-0my-pvc-1

我看到了许多数据库主/从设置的例子,作为StatefulSet的用例,但如果只为主部署(replicas=1(和为从部署(replica=(,就不能解决这个问题。对于体积,只需创建一个PV/PVC。

是的,这可能适用于测试和开发。但在生产环境中不建议使用。通常在云(和Kubernetes(环境中,您使用一个数据库,该数据库使用三个副本,并且在每个可用性区域中都有一个实例-使用replicas: 3和适当的PodAfinity配置的单个StatefulSet更容易管理。

最新更新