Не забывайте удалять pvc перед деплоем Elasticsearch через Helm
Порой все мы стыкаемся с детскими ошибками, то забыли поставить кавычку, то, забыли передать нужную env переменную, то, забыли банально удалить vpc после удаления хелм чарта.
С одной стороны банальная, но с другой - странная ошибка, которая возникла при попытке сделать downgrade для Elastic Search.
Сперва мною была засетаплена последняя 7.10 (или 7.11) в мой кластер k8s, а затем, когда я обнаружил, что мой Fluentd не умеет работать со столь новой версией ES, мне пришлось понизить (передеплоить) эластик до версии 7.9.3
Как оказалось, используя официальный хелм чарт - у меня не стартовали поды и вываливались в странную ошибку, ругаясь на отсутствие файла Lucene87 does not exist
Что это за ошибка, и какое оно имеет отношение к ES мне так и не удалось нагуглить, но затем, я обнаружил, что при удалении хелм чарта - не удалялись pvc и предыдущая версия Elastic Search пытаюсь использовать vpc от более новой версии.
В итоге, просто удалив pvc, проблема растворилась в воздухе.
Вот так, порой банальные вещи, могут завести в тупик.
Следите, что при удалении деплоймента, удалялись так же ваши PVC.
uncaught exception in thread [main]
java.lang.IllegalArgumentException: Could not load codec 'Lucene87'. Did you forget to add lucene-backward-codecs.jar?
Likely root cause: java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.Codec with name 'Lucene87' does not exist. You need to add the corresponding JAR file supporting this SPI to your classpath. The current classpath supports the following names: [Lucene70, Lucene80, Lucene84, Lucene86]
at org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:116)
at org.apache.lucene.codecs.Codec.forName(Codec.java:116)
at org.apache.lucene.index.SegmentInfos.readCodec(SegmentInfos.java:445)
at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:356)
at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:291)
at org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:61)
at org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:58)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:720)
at org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:81)
at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:63)
at org.elasticsearch.gateway.PersistedClusterStateService.nodeMetadata(PersistedClusterStateService.java:262)
at org.elasticsearch.env.NodeEnvironment.loadNodeMetadata(NodeEnvironment.java:408)
at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:329)
at org.elasticsearch.node.Node.<init>(Node.java:344)
at org.elasticsearch.node.Node.<init>(Node.java:277)
at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:227)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:227)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:393)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
For complete error details, refer to the log at /usr/share/elasticsearch/logs/elasticsearch.log