Если предполагается обновление платформы, используя Yandex Container Registry, то копирование файлов дистрибутива не требуется.
Перед обновлением платформы убедитесь, что она запущена. Если запущены обе версии платформы (2 и 3), то обновятся обе версии. Если запущена одна версия, то обновится только эта версия. Вторая версия не будет обновлена.
Проверка прав docker
Перед обновлением важно убедиться, что у пользователя, из-под которого будет происходить обновление, есть все права на выполнение команды docker
. Более подробную информацию вы найдете в разделе Общая часть обновления.
Обновление через образы
На основном сервере платформы:
Скопировать на сервер образы из поставки с сохранением иерархии каталогов.
Загрузите образ обновления в память:
docker load < update.tar.gz
Запустите образ обновления для получения новых скриптов загрузки образов:
Обновление до версии 2.37
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.37_3.8 \ --only-extract-load-scripts "$(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.37, илиall
- для загрузки образов 2.37 и 3.8.Запустите обновление. Скрипты запуска появятся в директории
/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.37_3.8 \ "$(id -u):$(id -g)" | \ tee /var/lib/visiology/logs/update-log-$(date +%Y-%m-%d-%H-%M-%z).txt
Опционально выполните удаление образов от старой версии:
docker rmi $(docker images --filter=reference='cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/*2.36*' --format "{{ .Repository }}:{{ .Tag }}")
Для удаления образов 3.5 выполните команду:
docker rmi $(docker images --filter=reference='cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/*3.7*' --format "{{ .Repository }}:{{ .Tag }}")
Если ViQube установлен на другом сервере:
Скопируйте на сервер образы
viqube.tar.gz, promtail.tar.gz
из поставки в каталогimages/v2
Запустите обновление на сервере ViQube.
Обновление до версии 2.37docker load < images/v2/viqube.tar.gz && \ docker load < images/v2/promtail.tar.gz
Удалите старые образы, если это необходимо
docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viqube:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.36
Если 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.37docker 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.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-db:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-app:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-db:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/python-script-service:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.36
Если при запуске в кластерном режиме возникли проблемы, то необходимо выполнить следующую команду на всех серверах: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.37_3.8
Запустите образ обновления для получения новых скриптов загрузки образов:
Обновление до версии 2.37
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.37_3.8 \ --only-extract-load-scripts "$(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>/var/lib/visiology/scripts/load_from_release_dockerhub.sh --version <VERSION>
где
VERSION
может принимать значенияv2
- для загрузки образов 2.37, илиall
- для загрузки образов 2.37 и 3.8Запустите обновление. Скрипты запуска появятся в директории
/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.37_3.8 \ "$(id -u):$(id -g)" | \ tee /var/lib/visiology/logs/update-log-$(date +%Y-%m-%d-%H-%M-%z).txt
Опционально выполните удаление образов от старой версии:
docker rmi $(docker images --filter=reference='cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/*2.36*' --format "{{ .Repository }}:{{ .Tag }}")
Для удаления образов 3.7 выполните команду:
docker rmi $(docker images --filter=reference='cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/*3.7*' --format "{{ .Repository }}:{{ .Tag }}")
Если ViQube установлен на другом сервере:
Запустите обновление на сервере ViQube.
Обновление до версии 2.37
docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viqube:2.37 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.37
Удалите старые образы, если это необходимо
docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viqube:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.36
Если Smart Forms установлен на другом сервере:
Запустите обновление на сервере Smart Forms.
Обновление до версии 2.37
docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-app:2.37 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-db:2.37 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-app:2.37 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-db:2.37 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/python-script-service:2.37 && \ docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.37
Удалите старые образы, если это необходимо
docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-app:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-db:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-app:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/viloader-db:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/python-script-service:2.36 && \ docker rmi cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/promtail:2.36
Если при запуске в кластерном режиме возникли проблемы, то необходимо выполнить следующую команду на всех серверах:
docker swarm leave -f
и произвести недостающие действия, как описано в разделе Установка компонентов на разные серверы.