我一直在尝试使用newly-promoted-to-stable helm chart在K8上运行Elasticsearch,顺便说一句,对于Elasticsearch v 6.4.2来说,它可以正常工作。但是,我们与需要elasticsearch v 5.5.3的grails应用绑定在一起,而该应用没有升级能力。我已将图表中的elasticsearch图片版本降级为5.5.3(并尝试使用v.5.6.12),但无法启动。
我调查了elasticsearch operator,但目前它已设置为可以使用AWS S3存储类型(即装即用)和GCP进行一些工作(尽管没有快照功能)。首先,我想知道它是否适用于5.5.3。
有人知道我是否可以在k8s集群中运行elasticsearch v 5.5.3吗?我会说至少要使用k8s StatefulSet。
谢谢!
更新
我想我应该已经给出了当将Elasticsearch图像降级到5.5.3时现有头盔图所具有的错误。
master-0吊舱无法以以下内容开头:
Error injecting constructor, ElasticsearchException[java.io.IOException: failed to read [id:15, legacy:false, file:/usr/share/elasticsearch/data/nodes/0/_state/global-15.st]]; nested: IOException[failed to read [id:15, legacy:false, file:/usr/share/elasticsearch/data/nodes/0/_state/global-15.st]]; nested: ElasticsearchException[Unknown license version found, please upgrade all nodes to the latest elasticsearch-license plugin];
at org.elasticsearch.gateway.GatewayMetaState.<init>(Unknown Source)
while locating org.elasticsearch.gateway.GatewayMetaState
for parameter 4 at org.elasticsearch.gateway.GatewayService.<init>(Unknown Source)
while locating org.elasticsearch.gateway.GatewayService
Caused by: ElasticsearchException[java.io.IOException: failed to read [id:15, legacy:false, file:/usr/share/elasticsearch/data/nodes/0/_state/global-15.st]]; nested: IOException[failed to read [id:15, legacy:false, file:/usr/share/elasticsearch/data/nodes/0/_state/global-15.st]]; nested: ElasticsearchException[Unknown license version found, please upgrade all nodes to the latest elasticsearch-license plugin];
客户端窗格失败,并显示以下信息:
[2018-10-22T17:52:51,835][WARN ][o.e.d.z.UnicastZenPing ] [elasticsearch-client-6bf954c595-7zlpc] failed to resolve host [elasticsearch-discovery]
java.net.UnknownHostException: elasticsearch-discovery
很显然,它期望有一个更高的Elasticsearch版本。
答案 0 :(得分:1)
这里的简短答案是ElasticSearch 5.5.3应该可以与Kubernetes一起使用。请注意,5.5.3的配置略有不同,我认为它们在5.6之后更改了,例如默认情况下启用了x-pack,是的,请使用StatefulSet或从现有的稳定Helm图表开始。 / p>
答案 1 :(得分:0)
我们最终进行了this Medium post的改进,以使ES 5.5.3在“多节点”模式下工作。这不是最新的ES图表版本提供的HA,但会帮助我们前进。
我们使用常规的存储类而不是SSD,并且由于无法使ulimit
命令在ES初始化上工作,我们暂时不得不禁用ES启动检查。
我们有多个ES节点,在我们可以升级应用程序以使用ES最新版本之前,它一直很好。