Обновление компонентов, установленных на разных серверах
Если предполагается обновление платформы, используя Yandex Container Registry, то копирование файлов дистрибутива не требуется.
Перед обновлением платформы убедитесь, что она запущена. Если запущены обе версии платформы (2 и 3), то обновятся обе версии. Если запущена одна версия, то обновится только эта версия. Вторая версия не будет обновлена.
Проверка прав docker
Перед обновлением важно убедиться, что у пользователя, из-под которого будет происходить обновление, есть все права на выполнение команды docker
. Более подробную информацию вы найдете в разделе Общая часть обновления.
Обновление через образы
На основном сервере платформы:
Скопировать на сервер образы из поставки с сохранением иерархии каталогов.
Загрузите образ обновления в память:
docker load < update.tar.gz
Запустите обновление. Скрипты запуска появятся в директории
/var/lib/visiology/scripts
.docker run --rm -it \ --name update-container \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /docker-volume:/docker-volume \ -v /var/lib/visiology:/mnt/volume \ cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.40_3.11 \ "$(id -u):$(id -g)" | \ tee /var/lib/visiology/logs/update-log-$(date +%Y-%m-%d-%H-%M-%z).txt
Запустите скрипт
load_images.sh
для загрузки образов нового релиза:/var/lib/visiology/scripts/load_images.sh --version <VERSION> -i <path_to_distrib>/images
где
path_to_distrib
- абсолютный путь к дистрибутиву платформы.VERSION
может принимать значенияv2
- для загрузки образов 2.40, илиall
- для загрузки образов 2.40 и 3.11.Опционально выполните удаление образов от старой версии:
docker rmi $(docker images --filter=reference='cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/*2.39*' --format "{{ .Repository }}:{{ .Tag }}")
Для удаления образов 3.10 выполните команду:
docker rmi $(docker images --filter=reference='cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/*3.10*' --format "{{ .Repository }}:{{ .Tag }}")
Если ViQube установлен на другом сервере:
Скопируйте на сервер образы
viqube.tar.gz, promtail.tar.gz
из поставки в каталогimages/v2
Запустите обновление на сервере ViQube.
Обновление до версии 2.40docker load < images/v2/viqube.tar.gz && \ docker load < images/v2/promtail.tar.gz
Удалите старые образы, если это необходимо
docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viqube:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.39
Если Smart Forms установлен на другом сервере:
Скопируйте на сервер образы
smart-forms-app.tar.gz
,smart-forms-db.tar.gz
,viloader-app.tar.gz
,viloader-db.tar.gz
,python-script-service.tar.gz
,promtail.tar.gz
из поставки в каталогimages/v2
Запустите обновление на сервере Smart-Forms.
Обновление до версии 2.40docker load < images/v2/smart-forms-app.tar.gz && \ docker load < images/v2/smart-forms-db.tar.gz && \ docker load < images/v2/viloader-app.tar.gz && \ docker load < images/v2/viloader-db.tar.gz && \ docker load < images/v2/python-script-service.tar.gz && \ docker load < images/v2/promtail.tar.gz
Удалите старые образы, если это необходимо
docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-app:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-db:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-app:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-db:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/python-script-service:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.39
Если при запуске в кластерном режиме возникли проблемы, то необходимо выполнить следующую команду на всех серверах:docker swarm leave -f
и произвести недостающие действия, описанные в разделе Установка компонентов на разные серверы.
Обновление через Yandex Container Registry
Войдите в Yandex Container Registry:
docker login \ --username oauth \ --password <token> \ cr.yandex
где
<token>
- токен, предоставленный отделом поддержки по вашему запросу.На основном сервере платформы:
Создайте новую папку и перейдите в неё. Скрипты запуска появятся в текущей директории.
Загрузите образ обновления
docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.40_3.11
Запустите обновление. Скрипты запуска появятся в директории
/var/lib/visiology/scripts
.docker run --rm -it \ --name update-container \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /docker-volume:/docker-volume \ -v /var/lib/visiology:/mnt/volume \ cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.40_3.11 \ "$(id -u):$(id -g)" | \ tee /var/lib/visiology/logs/update-log-$(date +%Y-%m-%d-%H-%M-%z).txt
Запустите скрипт
load_from_release_dockerhub.sh
для загрузки образов нового релиза:/var/lib/visiology/scripts/load_from_release_dockerhub.sh --version <VERSION>
где
VERSION
может принимать значенияv2
- для загрузки образов 2.40, илиall
- для загрузки образов 2.40 и 3.11Опционально выполните удаление образов от старой версии:
docker rmi $(docker images --filter=reference='cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/*2.39*' --format "{{ .Repository }}:{{ .Tag }}")
Для удаления образов 3.10 выполните команду:
docker rmi $(docker images --filter=reference='cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/*3.10*' --format "{{ .Repository }}:{{ .Tag }}")
Если ViQube установлен на другом сервере:
Запустите обновление на сервере ViQube.
Обновление до версии 2.40
docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viqube:2.40 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.40
Удалите старые образы, если это необходимо
docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viqube:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.39
Если Smart Forms установлен на другом сервере:
Запустите обновление на сервере Smart Forms.
Обновление до версии 2.40
docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-app:2.40 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-db:2.40 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-app:2.40 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-db:2.40 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/python-script-service:2.40 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.40
Удалите старые образы, если это необходимо
docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-app:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-db:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-app:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-db:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/python-script-service:2.39 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.39
Если при запуске в кластерном режиме возникли проблемы, то необходимо выполнить следующую команду на всех серверах:
docker swarm leave -f
и произвести недостающие действия, как описано в разделе Установка компонентов на разные серверы.