elasticsearch,kubernetes,autoscaling,horizontal-scaling,Mongodb,elasticsearch,Kubernetes,Autoscaling,Horizontal Scaling" /> elasticsearch,kubernetes,autoscaling,horizontal-scaling,Mongodb,elasticsearch,Kubernetes,Autoscaling,Horizontal Scaling" />

Mongodb statefulset最佳实践的动态扩展 背景

Mongodb statefulset最佳实践的动态扩展 背景,mongodb,elasticsearch,kubernetes,autoscaling,horizontal-scaling,Mongodb,elasticsearch,Kubernetes,Autoscaling,Horizontal Scaling,我在kubernetes集群中使用sharded mongodb和elasticsearch Statefulset运行应用程序。我在我的应用程序中为部署组件设置了水平吊舱自动缩放器,一切正常 问题 交通堵塞时就会出现问题。我的服务器部署可以很好地扩展,但mongodb碎片和elasticsearch节点无法处理这么多的流量并限制总体响应时间 简单的解决方案是用更多的碎片和副本配置这些状态集。让我烦恼的是,交通堵塞每天都会发生3-4个小时,因此让所有的男孩在剩下的时间里无所事事是一种浪费 我做了

我在kubernetes集群中使用sharded mongodb和elasticsearch Statefulset运行应用程序。我在我的应用程序中为部署组件设置了水平吊舱自动缩放器,一切正常

问题 交通堵塞时就会出现问题。我的服务器部署可以很好地扩展,但mongodb碎片和elasticsearch节点无法处理这么多的流量并限制总体响应时间

简单的解决方案是用更多的碎片和副本配置这些状态集。让我烦恼的是,交通堵塞每天都会发生3-4个小时,因此让所有的男孩在剩下的时间里无所事事是一种浪费

我做了一些研究,看起来数据库一般不应该动态地向外/向内扩展,因为在它们之间进行复制会消耗大量的网络和磁盘io。此外,在放大、缩小的过程中,还存在数据丢失和不一致的可能性

问题 如果可能,在mongodb、elasticsearch中处理动态缩放的正确方法是什么。。。和数据库的总体情况?

如果没有,我可以做些什么来节省我的云账单,因为我们每天只需要从数据库吊舱中获得短期的最大功率。

您应该阅读Kubernetes autoscaling-

水平Pod Autoscaler根据观察到的CPU利用率(或者,在支持自定义指标的情况下,在某些其他应用程序提供的指标上),自动缩放复制控制器、部署、副本集或有状态集中的Pod数量。请注意,水平Pod自动缩放不适用于无法缩放的对象,例如守护程序

水平吊舱自动缩放器作为Kubernetes API资源和控制器实现。资源决定控制器的行为。控制器定期调整复制控制器或部署中副本的数量,以使观察到的平均CPU利用率与用户指定的目标相匹配

使用HPA时,您还必须注意卷装载和数据延迟


正如@Serge在评论中提到的,我建议检查MongoDB和Elasticsearch本身提供的本机伸缩集群选项

看看

  • MongoDB运算符
  • 弹性搜索算子
  • Elasticsearch未来版本
我不太熟悉MongoDB和Elasticsearch与Kubernetes,但这些教程可能会帮助您:


如果你用的是banzaicloud

您可能不希望也不能仅为了添加自动缩放功能而编辑舵图。几乎所有图表都支持自定义注释,因此我们认为,只需在部署中添加一些简单注释,就可以设置自动缩放

我们已经公开了一个水平吊舱自动缩放操作员。如果您提供了正确的自动缩放注释,该操作员将监视您的部署或状态集,并自动创建HorizontalPodAutoscaler资源



希望您觉得这很有用。

您应该阅读关于Kubernetes autoscaling-

水平Pod Autoscaler根据观察到的CPU利用率(或者,在支持自定义指标的情况下,在某些其他应用程序提供的指标上),自动缩放复制控制器、部署、副本集或有状态集中的Pod数量。请注意,水平Pod自动缩放不适用于无法缩放的对象,例如守护程序

水平吊舱自动缩放器作为Kubernetes API资源和控制器实现。资源决定控制器的行为。控制器定期调整复制控制器或部署中副本的数量,以使观察到的平均CPU利用率与用户指定的目标相匹配

使用HPA时,您还必须注意卷装载和数据延迟


正如@Serge在评论中提到的,我建议检查MongoDB和Elasticsearch本身提供的本机伸缩集群选项

看看

  • MongoDB运算符
  • 弹性搜索算子
  • Elasticsearch未来版本
我不太熟悉MongoDB和Elasticsearch与Kubernetes,但这些教程可能会帮助您:


如果你用的是banzaicloud

您可能不希望也不能仅为了添加自动缩放功能而编辑舵图。几乎所有图表都支持自定义注释,因此我们认为,只需在部署中添加一些简单注释,就可以设置自动缩放

我们已经公开了一个水平吊舱自动缩放操作员。如果您提供了正确的自动缩放注释,该操作员将监视您的部署或状态集,并自动创建HorizontalPodAutoscaler资源



希望您觉得这很有用。

我认为MongoDB/Elasticsearch操作符具有扩展状态集的机制。我没有这些方面的经验,但我会查看这些运营商支持的自定义资源,以确定它们提供的功能。我会想象MongoDB/Elasticsearch运营商有扩展Statefulset的机制。我没有这些方面的经验,但我会查看这些运营商支持的自定义资源,以确定它们提供什么功能。