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

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

我想用 hpa 扩展我的 mysql 和 mongo 数据库!

我想知道我是否应该使用 StatefulsetsOperators 或两者都使用。

我也无法理解 StatefulSet 和 Operators 之间的区别。

有人可以帮助我吗?

非常感谢!!

kubernetes operators scale hpa statefulset
2个回答
3
投票

Statefulsets 和 Operators 并不那么相似。

Statefulset 是一种 Kubernetes 资源,用于处理需要保持状态的 pod。通常情况下,如果 pod 被 Kubernetes 杀死并重新生成,它会获得一个新名称,但如果它由 Statefulset 管理,它会以相同的名称重新生成。如果您希望应用程序具有一定的持久性,您通常会使用 Statefulset。

另一方面,运算符是 Kubernetes 中使用的一种模式,通过添加由给定运算符处理的自定义资源定义 (CRD) 来扩展正常功能。

我认为如果你想实现自己的解决方案,你会使用 Statefulsets;如果你想使用现有的解决方案,你会使用 Operator。

那里存在多个 MongoDB Kubernetes Operator。但是您可以查看 MongoDB 社区 Kubernetes Operator


0
投票

假设您有 5 个副本部署为有状态集,并附加了持久卷声明 (PVC) 的存储。当您想要缩小或放大规模时,问题就开始了。如果删除 2 个副本,这些卷和数据会发生什么?

在删除它们之前,您需要迁移数据,而不是丢失数据。另一个例子是灾难恢复。对于 postgres、mysql、redis、elasticsearch 等每种技术,这些操作都会有所不同,并且需要人工干预。 Kubernetes 中的操作员将用自动化取代人工操作员。因此,对于每种技术或特定用例,您可以使用可以处理这些操作的运算符,例如 postgres 运算符、redis 运算符等。

您可以查看社区运营商:https://operatorhub.io/

还可以阅读以下文章来了解有状态设置广告运算符之间的区别:

https://developer.redis.com/operate/orchestration/kubernetes-operator/

https://vmblog.com/archive/2020/10/29/going-beyond-statefulsets-with-kubernetes-operators.aspx

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