Здравствуйте!
Я пытаюсь обновить elasticsearch с 2.4.4 до 6.2.2.
Согласно статье https://www.elastic.co/guide/en/elasticsearch/reference/current/reindex-upgrade.html,
Чтобы обновить кластер Elasticsearch с 2.x, есть два варианта:
- full cluster restart до 5.6, реиндекс старых индексов, обновление до 6.x.
- создание нового кластера версии 6.x и удаленный реиндекс, который импортирует индексы непосредственно из кластера 2.x.
Я начала со второго варианта - удаленного реиндекса: я подняла соседний контейнер с ES 6.2.2, создала все необходимые индексы со всеми настройками и маппингами из старых индексов, но когда я пытаюсь выполнить POST / _reindex, я получаю JSON, который говорит, что ничего не было обновлено или создано. При этом никаких ошибок нет. Соответственно, индексы в ES 6.2.2 по-прежнему пусты, то есть в новую версию ничего не переносится.
С первым способом тоже не все гладко. Общие шаги мне ясны, но есть вопросы:
Шаг "Shutdown all nodes": что это значит в случае с контейнерами? Мне нужно просто остановить контейнер с ES 2.4.4?
Шаг "Upgrade all nodes using RPM or Debian packages": как я могу сделать это в контейнерах? Развернуть рядом контейнер с новой версией ES или как?
Помогите, пожалуйста, разобраться, как обновить версию наиболее простым и правильным способом с учетом того, что все инстансы ES живут в Docker контейнерах?