Инструкция по обновлению Monq до версии 7.5.0
Предыдущая версия Monq: 7.4.0
В обновлении:
Продукт | Новая версия |
---|---|
pl | 7.5.0 |
sm | 7.5.0 |
cl | 7.5.0 |
fm | 7.5.0 |
plugins | 7.5.0 |
mcs | 7.4.0 |
Уровень простоя - 5 мин остановка приема логов.
Релиз включает обновление различных модулей Monq. Если установлен только определенный набор модулей, например: pl и cl, то разделы с остальными модулями можно проигнорировать.
Проведение миграции 7.4.0 -> 7.5.0
Для запуска обновления требуется скачать клиент управления Monq monqctl и выполнить конфигурацию контекста monqctl, если ранее этого не выполнялось.
Минимальная версия monqctl: 1.7.0
Примечание: можно настроить 2 контекста для stage и production одновременно.
Примечание 2: токен для доступа в Monq ReleaseHub для скачивания обновления требуется получить, обратившись в поддержку Monq, либо из письма с регистрацией лицензии.
Выполнить предрелизную подготовку
-
Проверить контекст monqctl и статус реестра микросервисов.
# Просмотреть текущий контекст, с которым работает monqctl.
monqctl config current-context
# Просмотреть статус реестра микросервисов из контекста.
monqctl registry get status
# Просмотреть статус сервисов в реестре микросервисов из контекста.
monqctl registry get services -
Установить контекст релиза, с которым будет работать monqctl в рамках контекста установленного Monq. Команда при этом скачивает и подготавливает релиз.
monqctl release use-version 7.5.0 --product=monq
# Требуется выполнить экспорт релиза в папку
monqctl release version export 7.5.0 --product=monq --dest=<export directory>
# Выполнить команду `use-version` с аргументом `--sourceDir`.
monqctl release use-version 7.5.0 --product=monq --sourceDir=<папка с экспортированным обновлением>
Выполнить обновление реестра микросервисов
monqctl registry update registry --version=3.10.0
mkdir registry
monqctl registry export registry 3.10.0 --dest=./registry/
cd registry
monqctl registry update registry --version=3.10.0 --sourceDir=./
rm -rf ../registry
Выполнить обновление прав реестра микросервисов в k8s
namespace=$(monqctl registry get services KubeOptions --output=json | jq -r '.JsonConfig.KubeNamespace')
cat <<EOF | kubectl replace -n ${namespace} -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pl-microservice-registry-api-service-management
rules:
- apiGroups:
- ""
resources:
- services
- pods
verbs:
- '*'
- apiGroups:
- apps
resources:
- deployments
- ingresses
verbs:
- '*'
- apiGroups:
- extensions
resources:
- deployments
- ingresses
- services
verbs:
- '*'
- apiGroups:
- extensions
resources:
- namespaces
verbs:
- get
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods/exec
verbs:
- '*'
EOF
Monq Platform (pl)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра Monq
monqctl release update images --module=pl
Выполнить конфигурацию баз данных микросервисов
monqctl release update db pgsql --module=pl --microservice=pl-i18n-service --file pl-i18n-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-user-grants-api-service --file sqls/pl-user-grants-api-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-userspaces-api-service --file userspace-configuration.sql
monqctl release update db pgsql --module=pl --microservice=pl-userspaces-api-service --file sqls/pl-userspaces-api-service.sql
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=pl
Применить новую маршрутизацию
monqctl release update routing --module=pl
Сбросить кэш для микросервисов
monqctl instance clear cache --microservice=pl-user-grants-api-service
monqctl instance clear cache --microservice=pl-i18n-service
Monq Service Monitor (sm)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра Monq
monqctl release update images --module=sm
Выполнить конфигурацию баз данных микросервисов
monqctl release update db arangodb --module=sm --microservice=sm-rsm-service --file sqls/sm-rsm-service.aql
monqctl release update db pgsql --module=sm --microservice=sm-rsm-attributes-service --file sqls/sm-rsm-attributes-service.sql
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=sm
Запустить мигратор
monqctl release update migrator --module=sm --command="migrate rsm-attributes"
Monq Collector (cl)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра Monq
monqctl release update images --module=cl
Выполнить конфигурацию баз данных микросервисов
monqctl release update db pgsql --module=cl --microservice=pl-userspaces-api-service --file userspace-configuration.sql
Запустить мигратор
monqctl release update migrator --module=cl --command="migrate create-stream-db-schema"
Сбросить кэш для микросервисов
monqctl instance clear cache --microservice=cl-stream-schema-validator-service
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=cl
Запустить очистку старых данных
monqctl release update migrator --module=cl --command="migrate drop-stream-data-columns"
Test Forge (fm)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра Monq
monqctl release update images --module=fm
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=fm
PLUGINS (plugins)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра Monq
monqctl release update images --module=plugins
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=plugins
Выполнить обновление плагинов системного агента
monqctl release update agent-plugins --module=plugins --plugin=zabbixEventsDataFlow
monqctl instance restart microservice --microservice=pl-monq-agent