【发布时间】:2018-07-04 23:31:44
【问题描述】:
我正在尝试在 Kubernetes 上部署生产级 Elasticsearch 6.3.0。
看过几篇文章,但仍然不确定最好的方法是什么。
它不使用有状态集。
这已经很老了。
使用弹性搜索进行应用搜索。
来自 Elasticsearch 的图片是
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.0
docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.0
我想使用 -oss 映像,它是 Apache 的核心映像。
有没有关于在 Kubernetes 上设置生产级 6.3.0 版本的好文档。
【问题讨论】:
-
你真的需要
StatefulSet吗?我们正在运行一个基于部署的 ElasticSearch 集群,就像pires的部署一样。我认为他在 Github 上的文档和他的清单是一个坚实的基础,如果你认为这是更好的选择,你可以将Deployment更改为StatefulSet。 -
正确的生产级设置和配置取决于您的用例:)
-
如果不是有状态的,当 Pod 重新启动或由于其他原因部署到其他 Pod 时,数据会发生什么。
-
当 pod 重新启动或由于其他原因部署到其他 pod 时数据会发生什么 将两个彼此不相关的概念混为一谈:pod 重启、和持久数据。
Pod重启是零戏剧,只要volumes:被正确声明,因为这是 kubernetes 的工作,StatefulSet或Deployment将表现相同。两者的区别是volume是否绑定到Pod的身份,比如db-0总是需要启动db-0的数据,与“很好,使用 any 数据启动,只要它随着时间的推移持续存在” -
我还要说,关于您的“生产级 ES 集群”问题,确保,我的意思是确保您的
volume提供商有足够的 IOPS 来支持 ES 集群,因为这些东西肯定会破坏磁盘。在 AWS 中,您将希望io1具有尽可能多的预置 IOPS,因为由于阻塞 I 导致 ES 集群在节点上驱动平均负载较高是坏消息 /O