Обновление

Перед нужно делать резервную копию.

См. также: политика совместимости версий.

Обновление изолированного экземпляра

  1. Записать в файл .env строку с версией:

    VERSION=vXX.XX
    

    Здесь vXX.XX – целевая версия (например: v20.08 или v20.12.1).

  2. Загрузить актуальный Compose-файл:

    wget https://docs.mitigator.ru/vXX.XX/dist/docker-compose.yml
    

    Здесь vXX.XX – целевая мажорная версия (например: v20.08 или v20.12).

    Если в нем были сделаны правки для адаптеров Mellanox, воспроизвести их в новой версии файла.

  3. Совершить вход в хранилище образов со своими учетными данными:

    docker login docker.mitigator.ru
    
  4. Скачать образы:

    docker-compose pull
    
  5. Перезапустить все компоненты MITIGATOR:

    docker-compose down && docker-compose up -d
    

Обновление кластера с общим нерезервированным хранилищем

  1. Остановить все экземпляры MITIGATOR:

    docker-compose down
    
  2. На всех экземплярах записать в файл .env строку с версией:

    VERSION=vXX.XX
    

    Здесь vXX.XX – целевая версия (например: v20.08 или v20.12.1).

  3. На всех экземплярах скачать актуальный docker-compose.yml:

    wget https://docs.mitigator.ru/vXX.XX/dist/docker-compose.yml
    

    Здесь vXX.XX – целевая мажорная версия (например: v20.08 или v20.12).

    Если в нем были сделаны правки для адаптеров Mellanox, воспроизвести их в новой версии файла.

  4. На всех экземплярах, кроме базового, скачать актуальный файл docker-compose.worker.yml:

    wget https://docs.mitigator.ru/dist/multi/docker-compose.worker.yml \
       -O docker-compose.worker.yml
    
  5. На базовом экземпляре включить Postgres:

    docker-compose up -d postgres
    
  6. Выполнить на всех экземплярах последовательно, начиная с лидера:

    docker-compose up -d
    

Обновление кластера с внутренним отказоустойчивым хранилищем

  1. Остановить все экземпляры MITIGATOR, на которых Postgres работает в режиме standby, после чего остановить экземпляр с Postgres в режиме active:

    docker-compose down
    
  2. На всех экземплярах записать в файл .env строку с версией:

    VERSION=vXX.XX
    

    Здесь vXX.XX – целевая версия (например: v20.08 или v20.12.1).

  3. На всех экземплярах скачать актуальный docker-compose.yml:

    wget https://docs.mitigator.ru/vXX.XX/dist/docker-compose.yml
    

    Здесь vXX.XX – целевая мажорная версия (например: v20.08 или v20.12).

    Если в нем были сделаны правки для адаптеров Mellanox, воспроизвести их в новой версии файла.

  4. Включить экземпляр с Postgres в режиме active, после чего включить все экземпляры MITIGATOR, с Postgres в режиме standby:

    docker-compose up -d
    

Обновление кластера с внешним отказоустойчивым хранилищем

Шаги 1, 6 и 13 зависят от фактической организации СУБД на внешнем сервере.

  1. Отключить для всех экземпляров доступ к БД.

  2. На всех экземплярах записать в файл .env строку с версией:

    VERSION=vXX.XX
    

    Здесь vXX.XX – целевая версия (например: v20.08 или v20.12.1).

  3. На всех экземплярах скачать актуальный docker-compose.yml:

    wget https://docs.mitigator.ru/vXX.XX/dist/docker-compose.yml
    

    Здесь vXX.XX – целевая мажорная версия (например: v20.08 или v20.12).

    Если в нем были сделаны правки для адаптеров Mellanox, воспроизвести их в новой версии файла.

  4. Совершить вход в хранилище образов со своими учетными данными:

    docker login docker.mitigator.ru
    
  5. Скачать образы:

    docker-compose pull
    
  6. Убедиться, что на всех экземплярах отключен доступ к БД:

  7. Перезапустить все компоненты MITIGATOR:

    docker-compose down && docker-compose up -d
    
  8. Выполнить необходимые миграции БД (действия аналогичны выполняемым при первичной настройке postgres), для чего:

  9. Выполнить команду:

    docker-compose create postgres
    
  10. Скопировать скрипты миграции:

    docker cp mitigator_postgres_1:/schema schema
    
  11. Исполнить скрипты при помощи утилиты SHMIG.

  12. Выполнить команду:

    docker-compose rm -sf postgres
    
  13. Включить доступ к БД для всех экземпляров.