Облачная платформаAdvanced

Обновление версии Elasticsearch Кластера

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Кластеры Elasticsearch поддерживают обновление same-version, cross-version и cross-engine

  • Обновление Same-version означает обновление патчей ядра до последних образов в текущей версии кластера, чтобы исправить проблемы или оптимизировать производительность. Например, если версия кластера 7.10.2(7.10.2_24.3.3_0102), при обновлении same-version кластер будет обновлён до последнего образа 7.10.2(7.10.2_24.3.4_0109) версии 7.10.2. (Номера версий, используемые здесь, являются лишь примерами.)
  • Обновление cross-version означает обновление кластера до последнего образа целевой версии, чтобы расширить функциональность или включить версии. Например, если версия кластера 7.6.2(7.6.2_24.3.3_1224), при обновлении cross-version кластер будет обновлён до последнего образа 7.10.2(7.10.2_24.3.4_0109) версии 7.10.2. (Номера версий, используемые здесь, являются лишь примерами.)
  • Cross-engine upgrade означает обновление Elasticsearch кластера до OpenSearch кластера. Cross-engine upgrade означает обновление Elasticsearch кластера до последнего образа целевой версии OpenSearch. Например, если версия Elasticsearch кластера равна 7.10.2(7.10.2_24.3.3_0102), при cross-engine upgrade Elasticsearch кластер будет обновлен до последнего образа 1.3.6(1.3.6_24.3.4_0109) версии OpenSearch 1.3.6. (Номера версий, использованные здесь, являются лишь примерами.)

Узлы в кластере обновляются по одному, чтобы сервисы не прерывались. Процесс обновления выглядит следующим образом: Вывести узел из эксплуатации, перенести его данные на другой узел, создать новый узел целевой версии и подключить порты NIC офлайн‑узла к новому узлу для повторного использования IP‑адреса узла, затем добавить новый узел в кластер. Обновлять оставшиеся узлы по одному тем же способом. Если в кластере присутствует большой объём данных, продолжительность обновления зависит от времени миграции данных.

Version Support

Поддерживаемая целевая версия варьируется в зависимости от текущей версии. Для получения подробностей см Table 1.

Таблица 1 Пути обновления версии

Текущая версия

Целевая версия

Elasticsearch: 6.2.3

Elasticsearch: 6.5.4 or 6.8.23

Elasticsearch: 6.5.4

Elasticsearch: 6.8.23

Elasticsearch: 6.8.23

Elasticsearch: 7.6.2 or 7.10.2

Elasticsearch: 7.1.1

Elasticsearch: 7.6.2 or 7.10.2

Elasticsearch: 7.6.2

Elasticsearch: 7.10.2

Примечание:

  • Elasticsearch 7.6.2 и 7.10.2 являются основными версиями кластера. Рекомендуется обновить кластеры до этих двух версий. Поддерживаемые целевые версии отображаются в раскрывающемся списке Целевой образ.

Upgrade Impact

Перед обновлением кластера необходимо понять возможные последствия и рекомендации по эксплуатации, чтобы правильно запланировать время обновления на основе требований к сервису и состояния кластера. Это помогает обеспечить плавный процесс обновления и минимизировать воздействие на сервисы.

  • Процесс обновления и влияние на производительность

    Узлы кластера обновляются по одному, чтобы обеспечить непрерывность сервиса. Однако миграция данных во время обновления потребляет I/O производительность, и вывод отдельных узлов из эксплуатации всё ещё оказывает некоторое влияние на общую производительность кластера. Чтобы минимизировать это влияние, рекомендуется регулировать скорость миграции данных в зависимости от цикла трафика кластера: увеличить скорость миграции данных в непиковые часы для ускорения обновления и уменьшить её в пиковые часы для обеспечения оптимальной производительности кластера.

    Скорость миграции данных определяется indices.recovery.max_bytes_per_sec параметр. Значение по умолчанию Количество ядер CPU x 32, в MB (в секунду). Вы можете изменить этот параметр при необходимости в диапазоне от 40 MB до 1000 MB.

    PUT /_cluster/settings
    {
    "transient": {
    "indices.recovery.max_bytes_per_sec": "1000mb"
    }
    }
  • Замена узла и обработка запросов

    Во время обновления замена узла может привести к сбоям запросов. Чтобы избежать этой проблемы, рекомендуется использовать VPC Endpoint Service или выделенный балансировщик нагрузки для обработки запросов доступа к кластеру, а также добавить логику повторных запросов в клиентский код. Кроме того, рекомендуется выполнять обновление в непиковые часы, чтобы дополнительно минимизировать потенциальное воздействие.

    Для получения подробностей о том, как настроить VPC Endpoint Service или выделенный балансировщик нагрузки, см Настройка VPC Endpoint Service для кластера Elasticsearch и Настройка выделенного балансировщика нагрузки для кластера Elasticsearch.

  • Восстановление Kibana и Cerebro

    Kibana и Cerebro будут восстановлены во время обновления, что сделает их временно недоступными. Кроме того, из‑за проблем совместимости разных версий Kibana может стать недоступной во время обновления. Эти проблемы исчезнут после завершения обновления.

  • Управление задачами обновления

    После запуска задачу обновления нельзя остановить, пока она не завершится успешно или не завершится с ошибкой. Сбой обновления затрагивает только отдельные узлы. Он не будет влиять на сервисы, пока для таких узлов существуют реплики.

Ограничения

  • Одновременно можно обновить не более 20 кластеров. Рекомендуется выполнять обновление в часы низкой нагрузки.
  • Кластеры, у которых есть текущие задачи, нельзя обновлять.

Проверка перед обновлением

Чтобы обеспечить успешное обновление, необходимо проверить пункты, перечисленные в таблице ниже, перед выполнением обновления.

Таблица 2 Контрольный список перед обновлением

Элемент проверки

Метод проверки

Описание

Нормальный статус

Статус кластера

Проверка системы

После запуска задачи обновления система автоматически проверяет статус кластера. Кластеры, статус которых зеленый или желтый может предоставлять услуги корректно и не имеет нераспределенных первичных шардов.

Статус кластера Доступно.

Количество узлов

Проверка системы

После запуска задачи обновления система автоматически проверяет количество узлов. Чтобы обеспечить непрерывность обслуживания, общее количество дата‑узлов и узлов холодных данных в кластере должно быть больше или равно 3.

Общее количество дата‑узлов и узлов холодных данных в кластере должно быть больше или равно 3.

Емкость диска

Проверка системы

После запуска задачи обновления система автоматически проверяет емкость диска. Во время обновления узлы выводятся из эксплуатации один за другим, после чего создаются новые узлы. Убедитесь, что емкость диска всех оставшихся узлов может обработать все данные узла, который был выведен из эксплуатации.

После вывода узла из сети оставшиеся узлы могут содержать все данные кластера.

Бэкап данных

Системная проверка

Проверьте, может ли максимальное количество основных и резервных шардов индексов в кластере быть распределено между оставшимися узлами данных и холодными узлами данных. Предотвратите сбои распределения бэкапа после вывода узла из сети во время обновления.

Максимальное количество основных и резервных шардов плюс 1 должно быть меньше или равно общему числу узлов данных и холодных узлов данных перед обновлением.

Бэкап данных

Системная проверка

Перед обновлением выполните бэкап данных, чтобы предотвратить потерю данных, вызванную сбоями обновления. При отправке задачи обновления вы можете определить, включать ли проверку системой бэкапа всех индексов.

Проверьте, был ли выполнен бэкап данных.

Ресурсы

Системная проверка

После запуска задачи обновления система автоматически проверяет ресурсы. Ресурсы будут созданы во время обновления. Убедитесь, что ресурсы доступны.

Ресурсы доступны и достаточны.

Пользовательские плагины

Системная и ручная проверка

Выполняйте эту проверку только в том случае, когда пользовательские плагины установлены в исходном кластере. Если в кластере есть пользовательский плагин, загрузите все пакеты плагинов целевой версии на странице управления плагинами перед обновлением. Во время обновления установите пользовательский плагин на новых узлах. В противном случае пользовательские плагины будут потеряны после успешного обновления кластера. После запуска задачи обновления система автоматически проверяет, был ли загружен пакет плагина, но вам необходимо проверить, корректен ли загруженный пакет плагина.

ПРИМЕЧАНИЕ:

Если загруженный пакет плагина некорректен или несовместим, пакет плагина не может быть автоматически установлен во время обновления. В результате задача обновления завершается с ошибкой. Чтобы восстановить кластер, вы можете прекратить задачу обновления и восстановить узел, который не удалось обновить, выполнив Замена указанных узлов для кластера Elasticsearch.

После завершения обновления статус пользовательского плагина сбрасывается на Загружено.

Пакет плагина кластера, который будет обновлен, загружен в список плагинов.

Пользовательские конфигурации

Проверка системы

Во время обновления система автоматически синхронизирует содержимое файла конфигурации кластера elasticsearch.yml.

Пользовательские конфигурации кластеров не теряются после обновления.

Нестандартные операции

Ручная проверка

Проверьте, были ли выполнены в кластере нестандартные операции. Нестандартные операции означают ручные действия, которые не записываются. Эти действия не могут быть автоматически перенесены во время обновления, например, изменение kibana.yml файл конфигурации, системные настройки и маршруты возврата.

Некоторые нестандартные операции совместимы. Например, модификация плагина безопасности может быть сохранена через метаданные, и модификация конфигурации системы может быть сохранена с помощью образов. Некоторые нестандартные операции, такие как модификация kibana.yml файл, не может быть сохранён, и вы должны создать резервную копию файла заранее.

Проверка совместимости

Системная и ручная проверка

После начала задачи перекрестного обновления версии система автоматически проверяет, есть ли несовместимые конфигурации между исходной и целевой версиями. Если для Кластера установлен пользовательский Плагин, совместимость версии пользовательского Плагина необходимо проверить вручную.

Конфигурации до и после перекрестного обновления версии совместимы.

Проверить нагрузку Кластера

Системная и ручная проверка

Если Кластер сильно нагружен, высока вероятность, что обновление зависнет или завершится неудачей. Рекомендуется проверить нагрузку Кластера перед обновлением и выполнять обновление только в непиковое время.

Вы также можете выбрать проверку нагрузки кластера при настройке информации об обновлении.

  • nodes.thread_pool.search.queue < 1000: Проверить, что максимальное количество очередей поиска меньше 1000.
  • nodes.thread_pool.write.queue < 200: Проверить, что максимальное количество очередей записи меньше 200.
  • nodes.process.cpu.percent < 90: Проверить, что максимальное использование CPU ниже 90%.
  • nodes.os.cpu.load_average/Number of CPU cores < 80%: Проверить, что отношение максимальной нагрузки к числу ядер CPU меньше 80%.

Создание задачи обновления

  1. Войдите в CSS консоль управления.
  2. В навигационной панели слева выберите Кластеры для отображения списка кластеров Elasticsearch.
  3. Нажмите имя целевого кластера. Отображается страница информации о кластере.
  4. В навигационной панели слева выберите Снапшоты кластера, и создавайте снапшоты для резервного копирования всех данных индекса. Для подробностей см Ручное создание снапшота.

    При создании задачи обновления вы можете выбрать проверку, был ли полный набор данных индекса резервно скопирован с помощью снапшотов. Это помогает предотвратить потерю данных в случае сбоя обновления.

  5. В навигационной панели слева выберите Обновление версии.
  6. На отображаемой странице задайте параметры обновления.
    Таблица 3 Параметры обновления

    Параметр

    Описание

    Тип обновления

    • Обновление той же версии: обновить патчи ядра до последних образов в рамках текущей версии кластера.
    • Обновление между версиями: обновить кластер до последнего образа целевой версии.
    • Кросс-движковое обновление: обновить кластер Elasticsearch до кластера OpenSearch.

    Целевой образ

    Образ целевой версии. При выборе образа отображаются его название и детали целевой версии.

    Поддерживаемые целевые версии отображаются в раскрывающемся списке Целевой образ. Если целевой образ недоступен, возможные причины следующие:

    • Текущий кластер имеет последнюю версию.
    • Текущий кластер создан до 2023 года и имеет векторные индексы.
    • Образы новой версии не добавлены в текущем регионе.
    • Текущий кластер не поддерживает выбранный тип обновления.
  7. После настройки параметров нажмите Отправить. Определить, следует ли включить Проверить полный снимок индекса и Выполнить обнаружение нагрузки кластера и нажмите OK.

    Если кластер перегружен, задача обновления может приостановиться или завершиться неудачей. Включение Обнаружение нагрузки кластера может эффективно избежать отказов.

    Если во время обнаружения происходит любой из следующих случаев, подождите или уменьшите нагрузку. Если вам срочно необходимо обновить версию и вы понимаете риски отказа обновления, вы можете отключить Обнаружение нагрузки кластера функцию. Элементы проверки нагрузки кластера следующие:

    • nodes.thread_pool.search.queue < 1000: проверка того, меньше ли максимальное количество очередей поиска 1000.
    • nodes.thread_pool.write.queue < 200: Проверьте, что максимальное количество очередей записи меньше 200.
    • nodes.process.cpu.percent < 90: Проверьте, что максимальное использование CPU меньше 90%.
    • nodes.os.cpu.load_average/Number of CPU cores < 80%: Проверьте, что отношение максимальной нагрузки к числу ядер CPU меньше 80%.
  8. Посмотрите задачу обновления в списке задач. Если статус задачи Выполняется, вы можете развернуть список задач и нажать Просмотр прогресса для просмотра прогресса обновления.

    Если статус задачи Не удалось, вы можете повторить попытку или завершить задачу.

    • Повторить задачу: Нажмите Повторить в Операция столбце.
    • Завершить задачу: Нажмите Завершить в Операция столбце.
      Notice
      • Обновление той же версии: Если статус задачи обновления Не удалось, вы можете завершить задачу обновления.
      • Обновление разных версий: Вы можете остановить задачу обновления только когда статус задачи Не удалось и ни один узел не был обновлён.

      После завершения задачи обновления, Статус задачи кластера откатывается к статусу до обновления, и другие задачи в кластере не затрагиваются.