用于在Kubernetes上扩展mysql数据库的StatefulSets或Operators

o4tp2gmn  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(91)

我想用hpa扩展我的mysql和mongo数据库!
我想知道我是否应该使用StatefulsetsOperators或两者兼而有之。
我也不能理解StatefulSets和Operators之间的区别。
有人能帮帮我吗?
非常感谢您!!

qnzebej0

qnzebej01#

Statefulsets和Operators并不那么相似。
Statefulset是一个Kubernetes资源,它处理你需要保存状态的pod。通常情况下,如果一个pod被Kubernetes杀死并重生,它会得到一个新的名字,但是如果它是由一个Statefulset管理的,它会以相同的名字重生。如果你想让你的应用程序有一些持久性,你会经常使用Statefulset。
另一方面,运算符是Kubernetes中使用的一种模式,通过添加由给定运算符处理的自定义资源定义(CRD)来扩展正常功能。
我认为如果你想实现自己的解决方案,你应该使用Statefulsets,如果你想使用现有的解决方案,你应该使用Operator。
这里有多个MongoDB Kubernetes Operator,但你可以看看MongoDB Community Kubernetes Operator

f87krz0w

f87krz0w2#

假设您有5个副本部署为有状态集,并使用持久卷声明(PVC)连接存储。当你想缩小或扩大规模时,问题就开始了。如果删除2个复制副本,这些卷和数据会发生什么情况?
在删除它们之前,您需要迁移数据,而不是丢失数据。另一个例子是灾难恢复。对于每种技术,如postgres,mysql,redis,elasticsearch等,这些操作会有所不同,需要人工干预。Kubernetes中的操作员将用自动化取代人工操作员。因此,对于每种技术或特定的用例,您可以使用操作符来处理这些操作,如postgres操作符,redis操作符等。
你可以看看社区运营商:https://operatorhub.io/
另外下面的文章来了解有状态的set ad操作符的区别:
https://developer.redis.com/operate/orchestration/kubernetes-operator/
https://vmblog.com/archive/2020/10/29/going-beyond-statefulsets-with-kubernetes-operators.aspx

相关问题