我应该什么时候使用StatefulSet?我可以在StatefulSet中部署数据库吗? [英] When should I use StatefulSet?Can I deploy database in StatefulSet?

查看:0
本文介绍了我应该什么时候使用StatefulSet?我可以在StatefulSet中部署数据库吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我听说状态集适用于数据库。 但StatefulSet将为Echo Pod创建不同的PVC。 如果我设置复制品=3,那么我得到3个Pod和3个不同的PVC,具有不同的数据。 对于数据库用户,他们只想要一个数据库,而不是3个数据库。 因此,很明显,在这种情况下我们不应该使用STATEFERSET。 但是我们应该在什么时候使用STATEFULESET。

推荐答案

状态集与部署有三大不同:

  1. 它为每个副本创建一个新的PersistentVolumeClaim;
  2. 它提供Pod的连续名称,以statefulsetname-0开头;和
  3. 它以特定顺序(数字升序)启动Pod。
当数据库本身知道如何在自身的不同副本之间复制数据时,这很有用。例如,在Elasticearch中,索引被分解为碎片。默认情况下,每个碎片都有两个副本。如果您有五个运行Elasticearch的Pod,则每个Pod将具有不同部分的数据,但在内部,数据库系统知道如何将请求路由到具有相关数据的特定服务器。

我建议您优先使用StatefulSet,而不是手动创建PersistentVolumeClaim。对于不能复制的数据库工作负载,无论哪种情况,您都不能将replicas:设置为大于1,但PVC管理是有价值的。您通常不能让多个数据库指向相同的物理存储、容器或其他位置,并且大多数类型的卷不能跨Pod共享。

这篇关于我应该什么时候使用StatefulSet?我可以在StatefulSet中部署数据库吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆