我有一个弹性搜索设置。
我需要在kubernetes
中部署它目的:如果CPU / RAM达到90%,则自动将ES服务器及其所有数据扩展到3个实例,并将其缩小到一个包含其所有数据的实例
可以使用ReplicationController
缩放
我需要,如何使用kubernetes中的所有当前数据设置ES
任何人都可以帮我解决这个问题吗?
答案 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希望将负载分配到其群集的所有成员 - 与整合目标完全相反。
我敢打赌你可以制作一个自定义的Horizontal Pod Autoscaler实现,等到重新平衡操作完成后才能销毁Pod,但我现在还不知道任何开箱即用的机制。