使用Kubernetes进行弹性搜索设置

时间:2018-03-23 06:37:16

标签: docker elasticsearch kubernetes

我有一个弹性搜索设置。

我需要在kubernetes

中部署它

目的:如果CPU / RAM达到90%,则自动将ES服务器及其所有数据扩展到3个实例,并将其缩小到一个包含其所有数据的实例

可以使用ReplicationController缩放

我需要,如何使用kubernetes中的所有当前数据设置ES

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您需要StatefulSet s(tutorial)来解决该问题的一部分(他们尊重kubectl scale sts --replicas=$foo,就像rc一样)

让具有可预测主机名的成员(作为StatefulSet将会这样做)使discovery.zen.ping.hostnames更容易配置 - 即使当时只有一个ES节点实际存活(即:您可以在my-es-0.my-es.my-ns.svc.cluster.local,my-es-1.my-es.my-ns.svc.cluster.local,etc列表中指定zen,第一个ES节点将发出抱怨,但第二个及以上将受益于实际的发现部分)

  

将其缩小为一个包含其所有数据的实例

祝你好运;您必须重新平衡每个索引的分片与每个大小调整操作,因为ES希望将负载分配到其群集的所有成员 - 与整合目标完全相反。

我敢打赌你可以制作一个自定义的Horizo​​ntal Pod Autoscaler实现,等到重新平衡操作完成后才能销毁Pod,但我现在还不知道任何开箱即用的机制。