Руководство администратора¶
Полное наименование: Компонент среды разработки сценариев видеоаналитики
Обозначение: LPI-VAP-RS
Краткое наименование: «Сценарии»
Программный продукт: «Vizorlabs Platform 4.0» («Визорлабс Платформа 4.0»)
Стандарт: ГОСТ 19.503-79
Аннотация¶
Настоящий документ является руководством администратора компонента среды разработки сценариев видеоаналитики (LPI-VAP-RS) — расширения программного продукта «Vizorlabs Platform 4.0» («Визорлабс Платформа 4.0»; далее — Платформа 4.0). Документ предназначен для специалистов, выполняющих развёртывание, настройку, проверку и обслуживание серверных составных частей компонента.
Руководство определяет структуру компонента, границы ответственности администратора, состав зависимостей, порядок подготовки инфраструктуры и развёртывания в Kubernetes, направления настройки, проверки и сопровождения. Подробные команды, имена ресурсов и значения параметров должны уточняться для целевой поставки и фиксироваться в приложениях к настоящему руководству.
Порядок работы с каталогом сценариев, версиями, визуальным редактором, отладкой и проверочными запусками приведён в руководстве пользователя. Функции, алгоритмы, входные и выходные данные описаны в описании программы, состав и версии поставки — в формуляре.
Администратор должен владеть навыками администрирования Linux и Kubernetes,
уметь работать с Helm и kubectl, понимать назначение PostgreSQL,
S3-совместимого объектного хранилища, Kafka, Redis, очередей задач Celery,
графических ускорителей и централизованного журналирования. Знание разработки
сценариев видеоаналитики и моделей машинного обучения для выполнения штатных
административных операций не требуется.
1. Общие сведения о программе¶
1.1. Назначение и функции программы¶
LPI-VAP-RS обеспечивает управляемый жизненный цикл сценариев видеоаналитики: от создания сценария и рабочей версии до настройки логики в визуальном редакторе, отладки на проверочных данных, публикации, применения на камерах и вывода из эксплуатации. Компонент также предоставляет каталог логических блоков, из которых собирается сценарий, и контур отладочного исполнения версии на изображениях и видеозаписях.
| Группа задач | Содержание | Раздел |
|---|---|---|
| Подготовка инфраструктуры | Проверка узлов Kubernetes, постоянных томов, сетевой связности, GPU и общих сервисов Платформы 4.0 | 3.1 |
| Развёртывание | Установка и обновление Helm-релиза, контроль миграций, готовности хранилищ и контура песочницы | 3.2 |
| Настройка функций | Состав палитры логических блоков, доступные модели и категории, конвертеры отладочного контура, проверочные запуски | 3.3 |
| Настройка режимов | Параллелизм отладочных запусков, тайм-ауты, сроки хранения, очереди, обмен с Центральным модулем и журналирование | 3.4 |
| Настройка доступа | Получение пользовательского контекста от LPI-VAP-CORE и проверка полномочий на операции RS | 3.5 |
| Защита конфигурации | Хранение секретов, сертификатов и реквизитов инфраструктурных сервисов | 3.6 |
| Проверка | Технические и сквозные проверки каталога, редактора, отладки, публикации и доставки версии смежным компонентам | 4 |
| Сопровождение | Резервное копирование, восстановление, обновление, очистка данных, диагностика и масштабирование | 5 |
Таблица 1.1.1 — Группы задач администратора LPI-VAP-RS.
LPI-VAP-RS не выполняет непосредственную аутентификацию через СУДИР, подключение камер, исполнение опубликованных сценариев на рабочих видеопотоках и регистрацию событий. Единую точку входа, пользовательский контекст и назначение версий камерам предоставляет LPI-VAP-CORE; каталог моделей и их версий ведёт LPI-VAP-MM; исполнение опубликованных версий выполняет исполняющее ядро видеоаналитики Платформы 4.0.
1.2. Сведения о технических средствах¶
Компонент размещается на мастер-ноде и вычислительной ноде общего кластера Kubernetes Платформы 4.0. Отдельные физические серверы для LPI-VAP-RS не требуются, однако компоненту должны быть гарантированно выделены ресурсы, установленные проектом поставки.
| Тип узла | Размещаемые функции LPI-VAP-RS | Определяющие ресурсы |
|---|---|---|
| Мастер-нода | Визуальный редактор и менеджер сессий, прикладной API среды, хранилища сценариев, запусков и проверочных данных, маршрутизация, очередь задач, метаданные и обмен сообщениями | CPU, оперативная память сессий редактора и прикладных сервисов, постоянные тома PostgreSQL, объектного хранилища, данных редактора и рабочих каталогов |
| Вычислительная нода | Исполнитель отладочных запусков и конвертеры моделей отладочного контура | GPU, видеопамять, CPU, оперативная память, SSD для рабочих каталогов и локального кэша моделей |
| Рабочее место администратора | Доступ к интерфейсу Платформы 4.0 и средствам администрирования кластера | Поддерживаемый браузер, защищённый сетевой доступ, средства работы с Kubernetes и Helm |
Таблица 1.2.1 — Типы технических средств.
Количественные требования и правила совмещения нагрузки приведены в разделе 4 описания программы. В целевой редакции руководства они дополняются фактическими классами хранения, метками узлов, лимитами ресурсов, числом параллельных отладочных запусков и одновременных сессий редактора.
1.3. Сведения о программных средствах¶
| Уровень | Программные средства | Назначение |
|---|---|---|
| Системный | «Московская серверная операционная система», среда исполнения контейнеров, Kubernetes, Helm | Исполнение и оркестрация рабочих нагрузок |
| Вычислительный | Драйвер NVIDIA, NVIDIA Container Toolkit, CUDA, cuDNN, TensorRT | Предоставление GPU исполнителю отладочных запусков и конвертерам |
| Инфраструктурный | PostgreSQL, MinIO, Kafka, Redis, nginx и API-шлюз | Метаданные, объекты, сообщения, очереди, состояние сессий и маршрутизация запросов |
| Прикладной | Контейнерные образы составных частей LPI-VAP-RS: редактор на основе Node-RED, прикладной API, исполнитель, хранилища и конвертеры | Реализация функций разработки, отладки и хранения сценариев |
| Клиентский | Поддерживаемый веб-браузер, kubectl, Helm |
Пользовательский и административный доступ |
Таблица 1.3.1 — Уровни программных средств.
Точные версии программных средств, чарта и контейнерных образов фиксируются в формуляре и ведомости дистрибутива целевой поставки. Значения из разных поставок нельзя смешивать без проверки совместимости: исполнитель отладочных запусков и исполняющее ядро видеоаналитики должны использовать согласованный каталог логических блоков.
2. Структура программы¶
2.1. Составные части программы¶
| Составная часть | Назначение | Основные зависимости |
|---|---|---|
sbx-node-red-vl |
Визуальный редактор на основе Node-RED, каталог логических блоков, менеджер изолированных экземпляров редактора для сессий пользователей | Redis, данные и конфигурации блоков на постоянных томах |
sbx-sandbox-backend |
Прикладной API среды: сессии редактирования и отладки, загрузка проверочных файлов и зон, запуск и остановка обработки, выдача покадровых данных, канал оперативных уведомлений, сохранение графа в хранилище сценариев | Redis, Kafka, MinIO, sbx-node-red-vl, wf-scenario-storage, inf-flows-manager, wf-asset-storage |
sbx-celery |
Исполнитель отладочных запусков: покадровое выполнение графа на проверочных файлах, формирование кадров, журналов, сообщений и событий | Очередь задач Redis, GPU, локальный кэш моделей, конвертеры, реестр моделей LPI-VAP-MM |
wf-scenario-storage |
Хранилище сценариев: каталоги, сценарии, версии, графы и настройки блоков, публикация, версия по умолчанию, архив, атрибуты и комментарии, события жизненного цикла | PostgreSQL, Kafka, inf-flows-manager, хранилище камер LPI-VAP-CORE |
inf-flows-manager |
Менеджер графов: извлечение параметров блоков и используемых моделей из графа, массовая замена версии модели в сценариях | wf-scenario-storage, Kafka, реестр моделей |
sbx-yolo_converter, sbx-mm_converter |
Подготовка представлений моделей для отладочного контура | GPU, общий каталог моделей, Unix-сокеты в общем временном каталоге |
sbx-redis |
Состояние сессий, брокер и хранилище результатов очереди задач, шина оперативных уведомлений | Постоянный либо восстанавливаемый том |
sbx-nginx |
Маршрутизация запросов к прикладному API, экземплярам редактора и каналу уведомлений внутри контура песочницы | sbx-sandbox-backend, sbx-node-red-vl |
sbx-flower |
Наблюдение за очередью задач и исполнителями | Redis |
wf-asset-storage, wf-launch-storage |
Проверочные данные и проверочные запуски; используются совместно с LPI-VAP-MM | PostgreSQL, MinIO, Kafka, sbx-sandbox-backend |
Таблица 2.1.1 — Составные части LPI-VAP-RS.
Обозначения sbx-*, wf-* и inf-* являются логическими именами составных
частей, согласованными с описанием программы и текущими схемами развёртывания.
Хранилища wf-scenario-storage, wf-asset-storage и wf-launch-storage
поставляются дочерним чартом workflow родительского чарта box5; контур
песочницы sbx-* и менеджер графов поставляются отдельными доменными чартами,
имена ресурсов которых фиксируются в приложении В. При выполнении команд
администратор использует имена из отрендеренного манифеста принятой версии
поставки.
Веб-интерфейс, API-шлюз, средства единого входа, PostgreSQL, MinIO и Kafka Платформы 4.0 являются общеплатформенными или инфраструктурными средствами. Они нужны для работы LPI-VAP-RS, но не включаются в состав его прикладных сервисов. Хранилища проверочных данных и запусков, а также конвертеры администрируются совместно с LPI-VAP-MM; их резервное копирование и очистка описаны в руководстве администратора LPI-VAP-MM и в настоящем документе не дублируются.
2.2. Связи между составными частями¶
единый вход и пользовательский контекст"] UI["Веб-интерфейс и API-шлюз"] subgraph RS["LPI-VAP-RS"] NG["sbx-nginx"] SB["sbx-sandbox-backend"] NR["sbx-node-red-vl"] CEL["sbx-celery"] SCONV["Конвертеры
отладочного контура"] SS["wf-scenario-storage"] FM["inf-flows-manager"] end AS["wf-asset-storage"] LS["wf-launch-storage"] DB[("PostgreSQL")] S3[("MinIO")] K["Kafka Платформы 4.0"] R["Redis контура песочницы"] MM["LPI-VAP-MM
реестр моделей"] CAM["Хранилище камер
LPI-VAP-CORE"] INF["Исполняющее ядро
видеоаналитики"] CORE --> UI UI --> NG UI --> SS UI --> LS UI --> AS NG --> SB NG --> NR SB --> NR SB --> R SB --> CEL CEL --> R CEL --> SCONV CEL --> S3 SB --> SS SB --> FM SB --> AS LS --> SB SS --> DB SS <--> K FM --> SS K <--> FM MM --> FM MM --> K SS --> CAM K --> INF
Схема 2.1 — Основные связи LPI-VAP-RS.
Для целевой поставки по каждой связи в приложении В фиксируются имя Kubernetes Service, пространство имён, протокол, направление соединения, способ проверки готовности, владелец реквизитов и признаки нарушения связи.
2.3. Связи с другими программами¶
| Связанная система или компонент | Использование | Граница ответственности |
|---|---|---|
| LPI-VAP-CORE | Единая точка входа, пользовательский контекст, общий интерфейс и API-шлюз; справочники камер, типов зон и видов нарушений; назначение опубликованных версий камерам | CORE взаимодействует с СУДИР и управляет камерами; RS только проверяет переданные полномочия и предоставляет опубликованные версии |
| LPI-VAP-MM | Получение опубликованных моделей и версий для блоков редактора; уведомления об изменении версий моделей; массовая замена версии модели в сценариях | MM хранит модели и инициирует замену; RS создаёт новые версии сценариев с изменённой ссылкой |
| Исполняющее ядро видеоаналитики | Получение перечня опубликованных версий и настроек сценариев, загрузка графа выбранной версии | Исполнение рабочих видеопотоков и регистрация событий не входят в RS |
| Реестр контейнерных образов | Получение образов согласованной версии поставки | Доступ и доверенные сертификаты предоставляет инфраструктура заказчика |
| Мониторинг и журналирование | Сбор состояния, метрик и журналов рабочих нагрузок | Политики хранения и доступ задаются для Платформы 4.0 |
| Система резервного копирования | Защита метаданных, данных редактора, объектных данных и конфигурации | Согласованность копий PostgreSQL, MinIO и томов редактора обеспечивает регламент поставки |
Таблица 2.3.1 — Внешние связи компонента.
3. Настройка программы¶
3.1. Настройка на состав технических средств¶
Подготовка выполняется в составе общего кластера Kubernetes Платформы 4.0. Для хранилища сценариев, прикладного API и редактора отдельные GPU не требуются; графический ускоритель предоставляется исполнителю отладочных запусков и конвертерам отладочного контура. Размещение служебных подов на управляющих узлах Kubernetes допускается только тогда, когда это прямо предусмотрено схемой кластера и его политиками.
До развёртывания администратор выполняет следующие действия:
- Проверяет доступ к API Kubernetes и состояние всех предусмотренных проектом
узлов. Узлы должны иметь состояние
Ready, а системные поды DNS и сетевого плагина — быть готовы. - Сверяет проектные метки, affinity и tolerations. Сервисы
wf-scenario-storage,sbx-sandbox-backend,sbx-node-red-vl,sbx-nginxиsbx-redisразмещаются на узлах прикладного контура;sbx-celeryи конвертеры — на вычислительных узлах с ресурсомnvidia.com/gpu. - Проверяет доступность StorageClass и постоянных томов. Метаданные хранятся в PostgreSQL, проверочные файлы и результаты — в S3-совместимом объектном хранилище, данные и конфигурации редактора, рабочие каталоги сессий и локальный кэш моделей — на постоянных томах контура песочницы. Удаление Helm-релиза не должно приводить к удалению этих данных.
- Проверяет сетевую доступность PostgreSQL, MinIO, Kafka, реестра моделей LPI-VAP-MM, хранилища камер LPI-VAP-CORE и хранилищ проверочных данных и запусков из пространства имён поставки.
- Проверяет синхронизацию времени на всех узлах. Расхождение времени нарушает сопоставление состояний сессий, отладочных задач, журналов и сообщений Kafka.
- Создаёт
imagePullSecretдля доверенного реестра образов и убеждается, что сервисные учётные записи могут получить образы, указанные в формуляре. - Задаёт requests и limits по результатам нагрузочного расчёта: на каждую
одновременную сессию редактора резервируется не менее 1 ГБ оперативной
памяти, на каждый параллельный отладочный запуск — отдельный ускоритель и
объём памяти не менее размера распакованных артефактов используемых
моделей. Значения из демонстрационного
values.yamlне используются как эксплуатационные без проверки на целевой нагрузке. - Проверяет запас ёмкости PostgreSQL, S3 и томов контура песочницы. Перед первичной загрузкой проверочных данных рекомендуется иметь не менее 20 % свободного пространства сверх расчётного объёма поставки.
Минимальная исходная проверка выполняется командами:
kubectl cluster-info
kubectl get nodes -o wide
kubectl get nodes --show-labels
kubectl get storageclass
kubectl get pods -A
helm version
Для вычислительной ноды дополнительно проверяется наличие ресурса GPU:
kubectl describe node <имя-вычислительной-ноды>
В секциях Capacity и Allocatable должен присутствовать ресурс
nvidia.com/gpu в количестве, предусмотренном проектом. Проверка nvidia-smi
в операционной системе не заменяет проверку предоставления GPU в Kubernetes.
Платформы 4.0"] subgraph K8S["Кластер Kubernetes"] subgraph APP["Узлы прикладного контура"] NG["sbx-nginx"] SB["sbx-sandbox-backend"] NR["sbx-node-red-vl
экземпляры редактора"] SS["wf-scenario-storage"] FM["inf-flows-manager"] VOL[("Тома: данные и конфигурации
редактора, сессии")] NR --> VOL SB --> VOL end subgraph GPU["Вычислительные узлы"] CEL["sbx-celery"] CV["Конвертеры
отладочного контура"] CACHE[("Кэш моделей")] DEV["nvidia.com/gpu"] CEL --> CV --> DEV CEL --> DEV CEL --> CACHE end end PG[("PostgreSQL")] S3[("MinIO / S3")] K[("Kafka")] R[("Redis контура песочницы")] GW --> NG GW --> SS NG --> SB NG --> NR SB --> NR SB --> SS SB --> FM SB <--> R CEL <--> R CEL --> S3 SS --> PG SS <--> K K <--> FM
Схема 3.1 — Размещение основных рабочих нагрузок LPI-VAP-RS.
3.1.1. Контроль готовности инфраструктуры¶
До установки администратор заполняет контрольный лист. Имена ресурсов и допустимые версии берутся из документов конкретной поставки, а не из примеров предыдущих стендов.
| Объект проверки | Способ проверки | Ожидаемый результат | Действия при отклонении |
|---|---|---|---|
| Kubernetes и системные поды | kubectl get nodes; kubectl get pods -A |
Все требуемые узлы Ready; DNS, CNI и системные контроллеры готовы |
Восстановить работу узла или системного сервиса до установки LPI-VAP-RS |
| Метки и ограничения размещения | kubectl get nodes --show-labels; просмотр отрендеренных Deployment |
Селекторы и tolerations соответствуют проектным типам узлов | Исправить файл значений или метки; повторить шаблонизацию |
| GPU вычислительных узлов | kubectl describe node; согласованный тестовый под |
Ресурс nvidia.com/gpu доступен контейнеру |
Проверить драйвер, device plugin, runtime и правила планирования |
| Постоянное хранение | kubectl get storageclass,pvc -n <пространство> |
Требуемый StorageClass существует; PVC имеют состояние Bound |
Проверить CSI, режим доступа, ёмкость и привязку к узлу |
| Тома контура песочницы | Просмотр PVC данных редактора, конфигураций блоков, сессий и кэша моделей | Тома подключены к редактору, прикладному API и исполнителю с требуемым режимом доступа | Проверить режим ReadWriteMany для томов, разделяемых несколькими подами, либо размещение подов на одном узле |
| PostgreSQL | Контроль TCP/TLS и входа сервисной учётной записи без вывода пароля | Сервер доступен, база хранилища сценариев может быть создана или открыта | Проверить маршрут, сертификат, права учётной записи и лимит подключений |
| MinIO / S3 | Контроль TLS, доступа к endpoint и операций с тестовым объектом в служебном префиксе | Запись, чтение и удаление тестового объекта успешны | Проверить DNS, сертификат, политику бакета, квоту и реквизиты доступа |
| Kafka | Проверка соединения с bootstrap-серверами и прав на топики LPI-VAP-RS | Метаданные кластера доступны, сервисные группы могут читать и записывать свои топики | Проверить маршрут, TLS/SASL, ACL, имена топиков и группы потребителей |
| Redis контура песочницы | Проверка соединения из пространства имён поставки | Redis отвечает; прикладной API и исполнитель разрешаются через DNS | Исправить Service, сетевую политику или параметры подключения |
| Смежные сервисы | Разрешение имён реестра моделей, хранилища камер, хранилищ проверочных данных и запусков | Сервисы доступны по внутренним адресам конфигурации | Исправить адреса в файле значений либо сетевые политики |
| Реестр образов | Контрольное получение образа через imagePullSecret |
Образ согласованного digest загружается без ошибок TLS и авторизации | Исправить сертификат, сетевой доступ или секрет реестра |
| Время | Проверка NTP на каждой ноде | Все ноды используют согласованный источник времени | Восстановить синхронизацию до запуска сессий и отладочных задач |
Таблица 3.1.1 — Контроль готовности инфраструктуры LPI-VAP-RS.
Результаты заносятся в протокол приложения Д. В протокол не включаются пароли, токены, закрытые ключи и полное содержимое Kubernetes Secret.
3.2. Развёртывание и запуск¶
LPI-VAP-RS развёртывается не отдельным compose-проектом, а в составе
Helm-релиза родительского чарта box5. В командах используются следующие
обозначения:
<релиз>— имя Helm-релиза Платформы 4.0;<пространство>— пространство имён Kubernetes;<чарт>— каталог или пакет родительского чартаbox5;<значения>— проверенный файл открытых параметров целевой поставки;<секреты>— защищённый YAML-файл значений для формирования Kubernetes Secret; файл не включается в дистрибутив с открытыми параметрами и не прикладывается к протоколу.
| Команда | Назначение |
|---|---|
helm dependency build <чарт> |
Подготовить дочерние чарты в соответствии с Chart.lock |
helm lint <чарт> -f <значения> |
Выполнить статическую проверку чарта и открытых значений |
helm template <релиз> <чарт> -n <пространство> -f <значения> --set-file global.secrets.fileContent=<секреты> |
Проверить состав ресурсов до изменения кластера; сформированный вывод хранить как конфиденциальный, поскольку он содержит Secret |
helm upgrade --install <релиз> <чарт> -n <пространство> --create-namespace -f <значения> --set-file global.secrets.fileContent=<секреты> --atomic --wait --timeout 20m |
Установить или обновить релиз с ожиданием готовности и автоматическим откатом при ошибке |
helm status <релиз> -n <пространство> |
Проверить состояние установленной редакции |
helm history <релиз> -n <пространство> |
Просмотреть историю редакций для диагностики и отката |
kubectl get deploy,pods,svc -n <пространство> -o wide |
Проверить рабочие нагрузки и внутренние сервисы |
kubectl get events -n <пространство> --sort-by=.lastTimestamp |
Найти ошибки планирования, загрузки образов, подключения томов и инициализации |
Таблица 3.2.1 — Основные команды развёртывания и контроля.
Команды с --set-file не выполняются с включённой трассировкой оболочки. Вывод
helm template, kubectl get secret -o yaml и kubectl describe secret не
добавляется в заявку сопровождения или общедоступный журнал.
3.2.1. Состав и проверка дистрибутива¶
Комплект установки должен включать родительский чарт box5, зафиксированные
дочерние чарты, ведомость образов с digest, файл открытых значений, перечень
требуемых секретов без их значений, данные редактора (каталог логических
блоков, файлы допустимых моделей и категорий, конфигурации блоков),
миграционные требования и эксплуатационные документы той же версии.
В составе поставки проверяются как минимум следующие ресурсы:
| Логическая часть документа | Имя ресурса, заданное текущей схемой развёртывания | Чарт или домен | Назначение |
|---|---|---|---|
| Хранилище сценариев | wf-scenario-storage |
workflow / scenario-storage |
Сценарии, версии, графы, публикация и архив |
| Прикладной API среды | sbx-sandbox-backend |
Контур песочницы | Сессии, отладка, покадровые данные, сохранение графа |
| Визуальный редактор | sbx-node-red-vl |
Контур песочницы | Экземпляры редактора и менеджер сессий |
| Исполнитель отладочных запусков | sbx-celery |
Контур песочницы | Покадровое выполнение графа на GPU |
| Конвертеры отладочного контура | sbx-yolo_converter, sbx-mm_converter |
Контур песочницы | Подготовка представлений моделей |
| Маршрутизация, очередь, мониторинг | sbx-nginx, sbx-redis, sbx-flower |
Контур песочницы | Маршруты /sandbox/, состояние сессий и очередь, наблюдение |
| Менеджер графов | inf-flows-manager |
Домен inference |
Параметры блоков, модели графа, массовая замена версии |
| Проверочные данные и запуски | wf-asset-storage, wf-launch-storage |
workflow |
Совместно с LPI-VAP-MM |
Таблица 3.2.2 — Соответствие логических и Kubernetes-имён.
Перед установкой выполняются следующие проверки:
- Версии
Chart.yamlиChart.lockсовпадают с формуляром, а digest файла блокировки не изменён после приёмки комплекта. - В
values.yamlзаданы согласованные адреса PostgreSQL, MinIO, Kafka и Redis, внутренние URL хранилища сценариев, менеджера графов, хранилищ проверочных данных и запусков, реестра моделей и хранилища камер, имена бакетов, топиков и групп. - Секретные параметры PostgreSQL, MinIO, Kafka, реестра образов и служебной учётной записи для синхронизации зон исключены из открытых ConfigMap и передаются через Kubernetes Secret или подключённое средство управления секретами.
- Теги образов заменены неизменяемыми digest либо сопоставлены с digest в ведомости поставки. Образ исполнителя отладочных запусков соответствует варианту CUDA вычислительных узлов; версии исполнителя, редактора и исполняющего ядра видеоаналитики согласованы между собой.
- Ресурсы, размещение, Service и сетевые политики соответствуют схеме
кластера. Прямой внешний доступ к сервисам
wf-*иsbx-*не открывается: пользовательские обращения проходят через общий API-шлюз по маршрутам/sandbox/и/api/. - Средство наблюдения за очередью
sbx-flowerлибо отключено, либо защищено учётными данными поставки; значение по умолчанию из демонстрационной конфигурации не используется. - Значения очистки архива и объектных данных оставлены штатными до утверждения сроков хранения и успешной проверки резервного копирования.
В типовом чарте probes для wf-scenario-storage параметризованы, но по
умолчанию отключены. Их нельзя включать формально только ради состояния
Ready: сначала на образах версии поставки проверяются фактические маршруты и
семантика /healthz и /ready. Прикладной API среды предоставляет проверку
GET /api/v1/health.
3.2.2. Первичное развёртывание¶
- Создайте либо выберите пространство имён и проверьте квоты:
kubectl get namespace <пространство>
kubectl get resourcequota,limitrange -n <пространство>
- Подготовьте
imagePullSecret, открытый файл значений и защищённый файл секретов. Убедитесь, что последний доступен только исполнителю установки. - Подготовьте постоянные тома контура песочницы и заполните данные редактора из комплекта поставки: каталог конфигураций логических блоков, файл допустимых моделей и версий, файл допустимых категорий и перечень отключённых модулей (п. 3.3).
- Выполните
helm dependency build,helm lintиhelm templateкомандами таблицы 3.2.1. Проверьте отсутствие паролей и ключей в создаваемых ConfigMap, корректность имён Service и отсутствие незапланированного внешнегоNodePort. - Установите релиз командой
helm upgrade --installиз таблицы 3.2.1. - Проверьте состояние релиза, Deployment и событий пространства имён. Должны
появиться
wf-scenario-storage,sbx-sandbox-backend,sbx-node-red-vl,sbx-celery,sbx-redis,sbx-nginx, конвертеры иinf-flows-manager. - Убедитесь, что init-контейнеры подготовки базы данных завершились с кодом 0,
миграции хранилища сценариев применены, а основные контейнеры не находятся в
CrashLoopBackOffилиImagePullBackOff. - Выполните контроль по подразделу 3.2.5 и сквозные примеры раздела 4.
Если --atomic вернул ошибку и удалил неуспешную редакцию, сначала сохраните
события и журналы доступных подов, устраните причину, затем повторите установку.
Не отключайте ожидание готовности, чтобы скрыть ошибку инициализации.
3.2.3. Порядок запуска составных частей¶
Kubernetes может запускать независимые Deployment параллельно, поэтому порядок обеспечивается init-контейнерами, проверками готовности и повторными подключениями, а контролируется по следующим группам:
- PostgreSQL, MinIO, Kafka Платформы 4.0 и Redis контура песочницы доступны по сетевым именам, указанным в конфигурации.
- Init-контейнер создаёт или проверяет базу хранилища сценариев; при старте
wf-scenario-storageожидает объявленные зависимости, применяет миграции схемы и запускает прикладной сервер. Хранилища проверочных данных и запусков запускаются в том же порядке. - Запускаются
sbx-node-red-vlвместе с менеджером сессий иinf-flows-manager; редактор загружает каталог логических блоков и конфигурации блоков с постоянного тома. - Запускается
sbx-sandbox-backend: ожидает MinIO, Kafka и Redis, регистрирует потребителей сообщений о версиях моделей и состояниях запусков. - Запускаются
sbx-celeryи конвертеры: исполнитель синхронизирует зоны и модели из Платформы 4.0, подключается к очереди и получает GPU. - Настраиваются маршруты
sbx-nginxи общего API-шлюза:/sandbox/— к контуру песочницы,/api/— к хранилищам и прикладному API. - Проверяются потребители Kafka и прохождение состояний сессии и запуска через канал оперативных уведомлений интерфейса.
Отсутствие готового исполнителя и конвертеров не препятствует открытию каталога сценариев и редактированию графа, но делает невозможной отладку и проверочный запуск. Поэтому доступность страницы «Сценарии» не является достаточным признаком успешного запуска LPI-VAP-RS.
3.2.4. Остановка и перезапуск¶
Перед плановой остановкой прекратите приём новых сессий редактора и отладочных запусков, затем дождитесь завершения активных операций либо остановите их штатной функцией компонента. Пользователи должны сохранить графы: сессии редактора закрываются при остановке, незафиксированные изменения графа утрачиваются. Принудительное завершение во время записи в S3 может оставить объекты, не связанные с завершённой записью метаданных.
Перезапуск прикладных сервисов выполняется средствами Kubernetes:
kubectl rollout restart deployment/wf-scenario-storage -n <пространство>
kubectl rollout restart deployment/sbx-sandbox-backend -n <пространство>
kubectl rollout restart deployment/sbx-node-red-vl -n <пространство>
kubectl rollout restart deployment/sbx-celery -n <пространство>
kubectl rollout status deployment/wf-scenario-storage -n <пространство>
kubectl rollout status deployment/sbx-sandbox-backend -n <пространство>
kubectl rollout status deployment/sbx-node-red-vl -n <пространство>
kubectl rollout status deployment/sbx-celery -n <пространство>
Перезапуск sbx-node-red-vl завершает все экземпляры редактора и открытые
сессии; перезапуск sbx-celery прерывает выполняемые отладочные задачи. Если
изменена Helm-конфигурация, выполняйте helm upgrade, а не ручное
редактирование Deployment. Запуск процесса внутри контейнера и удаление
Helm-релиза не являются штатными способами перезапуска. Перед остановкой
PostgreSQL, MinIO, Kafka или Redis останавливаются зависящие от них прикладные и
вычислительные нагрузки.
3.2.5. Признаки успешного запуска¶
Установка считается технически успешной при одновременном выполнении следующих условий:
helm statusпоказывает установленную редакцию без неуспешных hook и Job;- Deployment
wf-scenario-storage,sbx-sandbox-backend,sbx-node-red-vl,sbx-celeryиinf-flows-managerимеют требуемое число доступных реплик; - init-контейнер базы данных завершён, миграции хранилища сценариев применены, число перезапусков основных контейнеров не растёт;
- внутренние Service имеют EndpointSlice с адресами готовых подов;
- из подов открывается
/api/docs/хранилища сценариев на порту 3000 и/api/v1/healthприкладного API среды; эта проверка подтверждает доступность HTTP-процессов, но не заменяет функциональный пример; - менеджер сессий редактора отвечает на служебный запрос и создаёт экземпляр редактора для тестовой сессии;
- сервисы подключились к PostgreSQL, MinIO, Kafka и Redis без повторяющихся ошибок авторизации, TLS или разрешения имён;
- исполнитель отладочных запусков зарегистрирован в очереди и получил GPU;
- в интерфейсе через общий шлюз открывается раздел «Сценарии», для рабочей версии открывается песочница с загруженной палитрой блоков;
- эталонная версия сценария проходит отладку на эталонном файле с получением визуализированных кадров, журналов и событий, публикуется и появляется в перечне опубликованных версий у исполняющего ядра видеоаналитики.
Основные команды контроля:
helm status <релиз> -n <пространство>
kubectl get deployment,pod,service,endpointslice -n <пространство>
kubectl get events -n <пространство> --sort-by=.lastTimestamp
kubectl logs deployment/wf-scenario-storage -n <пространство> --tail=200
kubectl logs deployment/sbx-sandbox-backend -n <пространство> --tail=200
kubectl logs deployment/sbx-node-red-vl -n <пространство> --tail=200
kubectl logs deployment/sbx-celery -n <пространство> --tail=200
Журналы перед передачей в службу сопровождения проверяются на наличие реквизитов доступа, подписанных URL и пользовательских данных. Полный вывод переменных окружения контейнера в диагностический пакет не включается.
3.3. Выбор функций¶
Структура настройки разделяет обязательное хранилище сценариев и профилируемые возможности: состав палитры логических блоков, перечень доступных в редакторе моделей и категорий, конвертеры отладочного контура, отладку на видео и изображениях, проверочные запуски и массовое обновление сценариев.
| Функция | Когда включается | Зависимости | Проверка после изменения |
|---|---|---|---|
| Каталог сценариев и версий | Всегда | wf-scenario-storage, PostgreSQL, Kafka, общий шлюз |
Создание сценария и черновой версии, чтение перечня версий |
| Визуальный редактор | Всегда | sbx-node-red-vl, sbx-sandbox-backend, sbx-nginx, Redis, тома данных и конфигураций редактора |
Открытие песочницы для черновой версии; палитра содержит блоки поставки |
| Состав палитры блоков | При ограничении состава блоков для поставки | Перечень отключённых модулей редактора в данных редактора; переменная исключения блоков исполнителя | В палитре отсутствуют исключённые блоки; сохранённый ранее граф с исключённым блоком не открывается для отладки |
| Доступные модели и категории | При ограничении моделей, видимых в блоках редактора | Файл допустимых моделей и версий и файл допустимых категорий в данных редактора; реестр моделей LPI-VAP-MM | После «Обновить зоны и модели из СОВА» блок «Детектор» показывает только допустимые модели и категории |
| Отладка на видео и изображениях | Если требуется проверка версии до публикации | sbx-celery, Redis, MinIO, GPU, конвертеры, локальный кэш моделей |
Эталонный файл обрабатывается, доступны кадры, журналы и события |
| Загрузка зон из ассета и файла | Если сценарии используют зоны | wf-asset-storage, типы зон LPI-VAP-CORE |
Зоны файла ассета загружаются в сессию; блок проверки зон формирует атрибут |
| Проверочные запуски версий сценариев | Если требуется контрольный запуск с фиксацией результата | wf-launch-storage, wf-asset-storage, sbx-sandbox-backend, sbx-celery |
Эталонный запуск завершается, доступны кадры, журналы и результат |
| Массовое обновление версии модели | Если LPI-VAP-MM поддерживает согласованный контракт замены | Kafka, inf-flows-manager, реестр моделей |
Тестовый сценарий получает новую версию с заменённой ссылкой; прочие параметры графа не изменяются |
| Автоматическая очистка архива | Всегда; период определяется поставкой | wf-scenario-storage |
Архивные записи с истёкшим сроком удаляются по расписанию, действующие сценарии не затрагиваются |
Таблица 3.3.1 — Выбор функций LPI-VAP-RS.
Состав палитры и перечень доступных моделей задаются данными редактора на
постоянном томе: файлом отключённых модулей Node-RED, файлом допустимых
моделей и версий (selected-models.csv) и файлом допустимых категорий
(selected-categories.yaml). Эти файлы поставляются в составе дистрибутива и
изменяются администратором только по согласованному перечню; после изменения
перезапускается редактор и выполняется «Обновить зоны и модели из СОВА» в
тестовой сессии. Одинаковый состав блоков должен быть у исполнителя
отладочных запусков и у исполняющего ядра видеоаналитики: сценарий,
отлаженный с блоком, отсутствующим в промышленном контуре, не может быть
исполнен на камерах.
Отключение функции выполняется только после проверки отсутствия активных сессий, задач и зависимых объектов. Сервис не исключается из релиза только потому, что его раздел временно скрыт в интерфейсе: сначала проверяется, не является ли он потребителем сообщений или владельцем фоновой операции другого сервиса.
3.4. Настройка режимов работы¶
3.4.1. Сессии редактора¶
Фиксируются число одновременных сессий, ресурсы одного экземпляра редактора, срок неактивной сессии и порядок её закрытия. Каждая сессия запускает отдельный процесс редактора и рабочий каталог на томе сессий; экземпляры создаются и останавливаются менеджером сессий по запросам прикладного API. Проверка включает открытие нескольких сессий разными пользователями, корректное закрытие сессии кнопкой «Вернуться к сценарию» и освобождение ресурсов после ухода со страницы.
3.4.2. Отладочные запуски и очередь задач¶
Фиксируются число исполнителей и параллелизм очереди (параметр
MAX_WORKERS_COUNT), выделение GPU (CUDA_VISIBLE_DEVICES, IS_USE_GPU),
тайм-аут постановки задачи (CELERY_TIMEOUT_TASK), параметры повторного
подключения к Redis и поток состояний обработки. Исполнитель обрабатывает одну
задачу на процесс и перезапускает процесс после каждой задачи; параллелизм
повышается только после контроля памяти GPU, времени очереди и влияния на
рабочую видеоаналитику Центрального модуля. Повтор отказавшей задачи не
создаётся, пока не установлено, завершилась ли исходная.
3.4.3. Проверочные файлы и зоны¶
Фиксируются предельные размер, разрешение и длительность файлов, принимаемых
прикладным API и общим шлюзом (client_max_body_size на маршрутах /sandbox/
и /api/), режим работы с зонами исполнителя (ZONE_STORAGE_WORK_MODE,
ZONES_METHOD) и параметры прямой передачи объектов в S3 (MINIO_PREFIX,
сроки действия подписанных ссылок). Лимиты задаются согласованно на шлюзе,
маршрутизаторе контура песочницы и прикладном API: увеличение только одного из
них не обеспечивает приём большего файла.
3.4.4. Модели отладочного контура¶
Фиксируются порядок источников моделей (MODEL_REGISTRIES_PRIORITY: сначала
локальный кэш, затем реестр моделей LPI-VAP-MM по адресу VLFLOW_ENDPOINT),
каталог кэша моделей (MODELS_PATH), адреса Unix-сокетов конвертеров
(YOLO_CONVERSION_URI, MMLAB_CONVERSION_URI) и регламент очистки кэша.
Исполнитель получает опубликованные версии моделей из реестра и сохраняет
подготовленные представления в кэше; доступ к внешним источникам моделей
(MLflow, репозитории разработки) в целевом контуре не настраивается.
3.4.5. Публикация и интеграционный обмен¶
Фиксируются топики Kafka хранилища сценариев: публикуемые
current_scenarios, scenarios_settings_updated, scenario_deleted,
scenario_restored и потребляемые create_zone_type, update_zone_type,
remove_zone_type; группы потребителей; топики прикладного API среды о
версиях моделей (model_version_ready, model_version_updated,
model_version_deleted) и о состояниях запусков (change_launch_status,
continue_launch); адреса хранилища камер и менеджера графов. Публикация
считается завершённой не по факту отправки команды, а после появления версии в
перечне опубликованных версий у исполняющего ядра. Служебная учётная запись,
под которой исполнитель синхронизирует зоны и модели из Платформы 4.0
(BOX_URL, BOX_LOGIN, BOX_PASSWORD), выдаётся с минимальными правами и
хранится в Secret.
3.4.6. Хранение и очистка¶
Фиксируются период очистки архива хранилища сценариев
(ARCHIVE_CLEANUP_INTERVAL_SEC, по умолчанию одни сутки), сроки хранения
архивных сценариев и версий, задаваемые в интерфейсе, сроки хранения рабочих
каталогов сессий и результатов отладки на томе контура песочницы, а также
параметры очистки бакетов проверочных данных и запусков, общие с LPI-VAP-MM.
3.4.7. Журналирование и мониторинг¶
Фиксируются уровни журналирования (LOGGER_LEVEL, LOGGING_LEVEL),
метрики готовности, числа сессий, длины очереди, длительности и ошибок
отладочных задач, заполнения хранилищ и томов, пороги оповещения и доступ к
средству наблюдения за очередью. В журналы включаются идентификаторы
сценария, версии, сессии, запуска и задачи, достаточные для сквозной
корреляции, но не содержимое Secret и подписанные S3-адреса. Повышенный
уровень включается на ограниченный интервал.
3.5. Настройка доступа¶
Настройка подключения Платформы 4.0 к СУДИР относится к LPI-VAP-CORE. Для LPI-VAP-RS администратор проверяет получение доверенного пользовательского контекста через общий шлюз и соответствие полномочий операциям просмотра, создания, редактирования, отладки, публикации, архивирования и удаления. Прямое подключение RS к СУДИР и отдельный OIDC-клиент не настраиваются.
Маршруты контура песочницы /sandbox/ публикуются только через общий шлюз;
экземпляры редактора адресуются по идентификатору сессии и не должны быть
доступны в обход шлюза. Средство наблюдения за очередью по маршруту
/sandbox/flower/ доступно только администратору из служебной сети.
| Проверка доступа | Ожидаемый результат |
|---|---|
| Запрос без пользовательского контекста | Отклонён общим шлюзом или сервисом с кодом 401 |
| Пользователь без полномочия RS | Раздел «Сценарии» или действие недоступны; прямой запрос отклонён с кодом 403 |
| Администратор RS | Доступны разрешённые операции каталога, версий, редактора, отладки, запусков и архивов |
| Попытка открыть песочницу или экземпляр редактора по прямому адресу без сессии | Запрос отклонён шлюзом; экземпляр редактора недоступен вне доверенного маршрута |
| Попытка подменить идентификатор пользователя или область видимости | Контекст не принимается вне доверенного маршрута общего шлюза |
| Техническое обращение между сервисами | Используется отдельная сервисная идентичность с минимальными правами, пользовательский токен не подменяется сервисным |
Таблица 3.5.1 — Контроль настройки доступа LPI-VAP-RS.
3.6. Защита конфигурации, секретов и сертификатов¶
Открытые параметры размещаются в конфигурации Helm и ConfigMap, секретные — в Kubernetes Secret либо подключённом средстве управления секретами. К секретным относятся реквизиты PostgreSQL, MinIO, Kafka, Redis, реестра образов, служебной учётной записи синхронизации зон и моделей и учётные данные средства наблюдения за очередью. В целевой поставке определяются владельцы значений, минимальные права сервисных учётных записей, период ротации и пороги срока действия сертификатов.
Ротация выполняется в следующем порядке:
- определить всех потребителей изменяемого реквизита и возможность периода совместного действия старого и нового значения;
- создать новую версию Secret средствами принятого защищённого хранилища;
- применить изменение сначала к зависимой стороне, допускающей два значения, затем последовательно перезапустить потребителей в окно, когда нет активных сессий редактора и отладочных задач;
- выполнить проверки соединения и контрольный пример раздела 4;
- отозвать прежнее значение после подтверждения работы всех потребителей;
- проверить журналы и диагностические пакеты на отсутствие раскрытого значения.
Экспорт Secret, полный вывод переменных окружения и сохранение отрендерированного Secret в открытом протоколе запрещены. Сертификаты MinIO, Kafka, Ingress и реестра образов проверяются до истечения срока, чтобы их замена не совпала с обновлением прикладных образов. Пользовательские Python-блоки, подключаемые в каталог блоков, проходят согласование и проверку до включения в дистрибутив: они исполняются с правами исполнителя отладочных запусков и исполняющего ядра.
4. Проверка программы¶
4.1. Способы проверки работоспособности¶
Проверка строится по уровням: состояние Kubernetes; доступность хранилищ и
очередей; готовность прикладных API и менеджера сессий; прохождение
отладочной задачи; сквозной пользовательский сценарий. Состояние Running
само по себе не подтверждает работоспособность компонента.
| Уровень | Способ проверки | Признак успешного результата |
|---|---|---|
| Helm-релиз | helm status и helm history |
Редакция развёрнута, незавершённое обновление отсутствует |
| Kubernetes | Поды, Deployment, probes, события, PVC и EndpointSlice | Обязательные поды готовы, PVC имеют Bound, повторные перезапуски и критические события отсутствуют |
| PostgreSQL и MinIO | Контроль соединения хранилищем сценариев, чтение и запись через штатный API | Сценарий и версия сохраняются и повторно читаются без ручного обращения к БД или бакету |
| Kafka, Redis и Celery | Доступность, группы потребителей, очередь и исполнители | Отставание не растёт, исполнитель получает контрольную задачу |
| Редактор и сессии | Создание тестовой сессии, загрузка палитры, закрытие сессии | Экземпляр редактора создаётся и останавливается; палитра содержит блоки поставки |
| GPU-контур | Размещение исполнителя и конвертеров, выделение nvidia.com/gpu, память и журнал задачи |
GPU выделен Kubernetes, эталонная отладка завершается без ошибок ресурса |
| Прикладные API | Проверки готовности и обращения через общий шлюз | Методы отвечают в соответствии с контрактом и полномочиями |
| Сквозной сценарий | Контрольные примеры 4.2 | Состояния проходят ожидаемую последовательность, результат доступен в UI и смежном компоненте |
Таблица 4.1.1 — Уровни проверки работоспособности LPI-VAP-RS.
4.2. Контрольные примеры¶
| № | Контрольный пример | Ожидаемый результат |
|---|---|---|
| 1 | Открытие раздела «Сценарии» под учётной записью с разрешением | Каталог доступен, состав операций соответствует полномочиям |
| 2 | Создание сценария и рабочей версии, открытие песочницы | Сессия создана, редактор загружен, палитра содержит блоки поставки |
| 3 | Обновление зон и моделей из Платформы 4.0 | Блок «Детектор» показывает опубликованные версии моделей и допустимые категории |
| 4 | Сборка эталонного графа, фиксация кнопкой «Deploy» и «Сохранить изменения» | Граф сохранён в версии; хранилище извлекло параметры блоков и перечень моделей |
| 5 | Отладка на эталонном видео с зонами из ассета | Обработка завершена, доступны визуализированные кадры, журналы кадра и сообщений, события |
| 6 | Публикация версии | Версия опубликована, сообщение с перечнем опубликованных версий доставлено исполняющему ядру |
| 7 | Проверочный запуск версии на версии ассета | Запуск завершён, доступны прогресс, кадры, события, журналы и результат |
| 8 | Массовая замена версии модели из LPI-VAP-MM | Для тестового сценария создана новая опубликованная версия с заменённой ссылкой |
| 9 | Обновление версии сценария на тестовой камере | Камера использует новую версию; события формируются по новой версии |
| 10 | Попытка архивировать сценарий с черновой версией и версию, назначенную камере | Операции отклонены с указанием причины |
Таблица 4.2.1 — Набор контрольных примеров.
4.3. Результаты проверки¶
Для каждого примера фиксируются дата, версия поставки, входные данные, ожидаемый и фактический результат, длительность, идентификаторы сессий, задач и запусков и заключение. Компонент считается готовым, если обязательные проверки завершены успешно, отсутствуют необъяснённые перезапуски и ошибки, а выявленные ограничения согласованы и внесены в протокол.
Результат проверки оформляется по приложению Д. К протоколу прилагаются ведомость образов и digest, состав данных редактора (перечень блоков, файлы допустимых моделей и категорий), идентификаторы эталонных объектов и задач, а также ссылки на очищенные от секретов журналы. Неприменимая проверка не пропускается без записи: указываются причина, решение ответственного лица и влияние на приёмку. После исправления ошибки повторяется отказавший пример и связанные с ним проверки, а не только отдельный запрос, на котором проявился отказ.
5. Дополнительные возможности¶
5.1. Резервное копирование и восстановление¶
5.1.1. Состав резервируемых данных¶
Резервная копия LPI-VAP-RS должна позволять восстановить каталог сценариев, графы версий, данные редактора и результаты проверок в согласованное состояние. Имена баз, томов и бакетов из таблицы 5.1.1 являются типовыми; перед настройкой задания они сверяются с отрендерированным Helm-манифестом целевой поставки.
| Группа данных | Состав | Требование к копированию |
|---|---|---|
| Метаданные сценариев | База PostgreSQL сервиса wf-scenario-storage: каталоги, сценарии, версии, графы (flow_data), настройки блоков, зависимости от моделей, признаки публикации и архива, атрибуты, комментарии |
Согласованная логическая или физическая копия штатными средствами PostgreSQL либо утверждённого оператора резервного копирования |
| Данные редактора | Том данных редактора: каталог логических блоков, конфигурации блоков, файлы допустимых моделей и категорий, перечень отключённых модулей | Копируется при каждом изменении состава блоков и при обновлении версии; входит в дистрибутив поставки |
| Рабочие каталоги сессий | Том сессий контура песочницы: графы открытых сессий, загруженные проверочные файлы, результаты отладки | Восстанавливаемые данные; резервируются по решению регламента, незавершённые сессии не восстанавливаются |
| Локальный кэш моделей | Подготовленные представления моделей на вычислительной ноде | Не резервируется; восстанавливается из реестра моделей LPI-VAP-MM |
| Проверочные данные и запуски | Базы и бакеты wf-asset-storage и wf-launch-storage |
Копируются по регламенту LPI-VAP-MM совместно с данными этого компонента |
| Конфигурация развёртывания | Версия родительского и дочерних Helm-чартов, открытые значения, манифесты политик, перечень образов и digest | Сохраняется при каждом принятом изменении; комплект должен позволять повторить helm template |
| Конфиденциальная конфигурация | Secret, ключи шифрования, сертификаты и реквизиты инфраструктурных сервисов | Сохраняется защищённым средством заказчика отдельно от открытой конфигурации |
| Регламентные сведения | Версия релиза, время согласованной точки, контрольные суммы, место и срок хранения копии | Включаются в журнал резервного копирования без секретных значений |
Таблица 5.1.1 — Состав резервной копии LPI-VAP-RS.
Kafka и Redis обеспечивают доставку сообщений, состояние сессий и выполнение асинхронных задач, но не заменяют основные хранилища данных. Необходимость резервирования их состояния определяется общеплатформенным регламентом. Если ожидающие сообщения и задачи не резервируются, перед копированием прекращают создание новых сессий и запусков, дожидаются завершения активных либо фиксируют их идентификаторы для последующей сверки.
Не требуется включать в резервную копию контейнерные образы, локальный кэш моделей, временные каталоги конвертеров и Unix-сокеты, если они воспроизводятся из доверенного реестра и сохранённых объектов. Наличие образов требуемых digest в реестре проверяется отдельно.
5.1.2. Подготовка и выполнение копирования¶
Периодичность, глубина хранения, RPO и RTO устанавливаются для целевой поставки в приложении В и регламенте заказчика. Копии размещаются вне узлов кластера и вне тех же отказоустойчивых доменов, где находятся рабочие данные.
Перед копированием администратор выполняет следующие действия:
- Проверяет успешность предыдущего задания, доступность целевого хранилища и запас места.
- Фиксирует время начала, имя и редакцию Helm-релиза, версии образов, число открытых сессий редактора и активных отладочных задач.
- Прекращает приём новых сессий и запусков на время, необходимое для формирования согласованной точки, либо применяет поддерживаемый механизм snapshot без остановки записи.
- Формирует копию базы хранилища сценариев, тома данных редактора и, по регламенту, тома сессий. Выбранный способ должен исключать появление в восстановленном каталоге версий без графа.
- Сохраняет конфигурацию Helm и защищённую копию секретов, соответствующие той же редакции приложения.
- Проверяет завершение заданий, объём, контрольные суммы и возможность чтения каталога копии; затем возобновляет операции компонента.
- Регистрирует результат, срок хранения, ответственного и выявленные отклонения в эксплуатационном журнале.
Копирование только PVC без предусмотренного приложением механизма quiesce или snapshot не считается согласованной резервной копией. Копия базы сценариев без тома данных редактора не обеспечивает восстановление палитры блоков той же версии, а без бакетов проверочных данных и запусков — восстановление результатов проверок.
5.1.3. Восстановление¶
Восстановление сначала проверяется на изолированном контуре. Подключать его к рабочим топикам Kafka и внешнему API-шлюзу запрещается, чтобы тест не изменил рабочие состояния и не опубликовал сценарии повторно исполняющему ядру.
- Выберите одну согласованную точку восстановления и проверьте наличие всех частей копии и поддерживаемой версии образов.
- Ограничьте входной трафик к LPI-VAP-RS. Зафиксируйте исходное число реплик, затем остановите прикладные сервисы, редактор и исполнителей, способных записывать в восстанавливаемые хранилища.
- Восстановите базу хранилища сценариев, том данных редактора и, при необходимости, том сессий из той же согласованной точки. Хранилища проверочных данных и запусков восстанавливаются по регламенту LPI-VAP-MM из той же точки.
- Восстановите конфигурацию и секреты, примените соответствующий Helm-релиз и дождитесь завершения миграций и готовности рабочих нагрузок.
- Сверьте незавершённые на момент копии сессии и запуски. Зависшие операции не переводятся в успешное состояние вручную; их останавливают или повторяют штатной операцией после анализа журналов.
- Выполните проверки таблицы 5.1.2 и контрольные примеры раздела 4. Входной трафик возвращается только после положительного результата.
| Объект | Проверка | Критерий успешного результата |
|---|---|---|
| Helm и Kubernetes | helm status, готовность Deployment, события и перезапуски |
Принятая редакция развёрнута; обязательные поды готовы; повторяющихся ошибок нет |
| PostgreSQL | Наличие схем, записей каталога, версий и графов | Структура соответствует версии сервиса; контрольные запросы выполняются |
| Данные редактора | Открытие песочницы и палитры | Состав блоков и допустимых моделей соответствует версии поставки |
| Сценарии | Открытие опубликованной версии в режиме просмотра | Граф загружается, параметры блоков соответствуют сохранённым |
| Проверочные данные и запуски | Открытие версии ассета и завершённого запуска до точки копирования | Файлы, кадры, события и журналы доступны |
| Асинхронный обмен | Состояние групп Kafka и новая контрольная публикация | Отставание не растёт; исполняющее ядро получает перечень опубликованных версий |
Таблица 5.1.2 — Проверки после восстановления.
Контрольное восстановление проводится периодически с частотой, установленной регламентом, и после изменения способа копирования. Успешное завершение задания копирования без контрольного восстановления не подтверждает пригодность копии.
5.1.4. Автоматизация и ротация копий¶
Автоматическое копирование выполняется Kubernetes CronJob, оператором СУБД
или внешней системой резервного копирования. Реализация должна обеспечивать:
- запрет параллельного запуска двух копирований одного набора данных;
- ограничение длительности и контролируемый повтор после временного отказа;
- шифрование копий при передаче и хранении;
- оповещение об ошибке, отсутствии свежей копии и недостатке места;
- ротацию по утверждённому сроку без удаления последней успешной копии;
- журналирование без паролей, ключей, токенов и подписанных S3-адресов.
Перед включением автоматической ротации маска удаления проверяется на тестовом наборе. Она должна быть ограничена каталогом или бакетом резервных копий и не может совпадать с путями томов редактора и сессий или префиксами рабочих данных LPI-VAP-RS.
5.2. Обновление версий и откат¶
До изменения релиза оформляется план обновления.
| Сведение | Что фиксируется |
|---|---|
| Исходная и целевая версии | Редакции Helm-релиза и чартов, версии и digest образов, версия каталога логических блоков |
| Изменения данных | Миграции базы хранилища сценариев, изменения формата графа и конфигураций блоков, обратимость операций |
| Совместимость | Версии Kubernetes, PostgreSQL, S3 API, Kafka, Redis, CUDA/TensorRT, состав блоков исполнителя и исполняющего ядра, контракты с LPI-VAP-CORE и LPI-VAP-MM |
| Влияние | Ожидаемый перерыв, закрытие сессий редактора, временный запас CPU, памяти, GPU и места, ограничения отладки и запусков |
| Критерии успеха | Готовность рабочих нагрузок и обязательные проверки раздела 4 |
| Условие отката | Ошибка миграции, неготовность подов, отказ загрузки сохранённых графов в редакторе, нарушение сквозной функции или превышение окна работ |
| Ответственные | Исполнитель, лицо, принимающее решение об откате, и канал уведомления |
Таблица 5.2.1 — План обновления LPI-VAP-RS.
Порядок обновления:
- Сопоставьте формуляр исходной и целевой поставок. Проверьте изменение схем, параметров, состава блоков и контрактов с LPI-VAP-CORE, LPI-VAP-MM и исполняющим ядром. Обновление каталога блоков согласуется с обновлением исполняющего ядра: опубликованные сценарии должны исполняться обеими версиями.
- Проверьте
helm history, состояние подов, PVC, хранилищ и очередей. До начала работ устраните исходные ошибки и нехватку ресурсов. - Уведомите пользователей, дождитесь сохранения графов и закрытия сессий редактора, завершения отладочных задач и запусков либо остановите их штатным способом. Выполните резервное копирование по 5.1.
- Подготовьте новый чарт, значения и данные редактора. Выполните
helm lintиhelm template, сравните Deployment, Service, Secret, задания и параметры миграций с текущей редакцией. Отрендерированный Secret не сохраняйте в открытом протоколе. - Выполните
helm upgradeс ключами--atomic --waitи установленным для поставки тайм-аутом. Не запускайте миграции базы вручную параллельно с init-контейнерами чарта. - Проверьте
helm status, состояние миграций, доступность хранилища сценариев, прикладного API, редактора и исполнителя, отставание групп Kafka и журналы конвертеров. - Откройте в режиме просмотра несколько опубликованных версий, в том числе с пользовательскими блоками, и убедитесь, что графы загружаются без предупреждений о неизвестных блоках.
- Выполните контрольные примеры раздела 4 и зарегистрируйте принятую редакцию.
Способ отката зависит от изменения данных:
завершились успешно?"} MIG -- "Нет" --> RESTORE["Остановить сервисы;
восстановить БД, тома редактора и конфигурацию
из согласованной копии"] MIG -- "Да" --> CHECK{"Проверки раздела 4
успешны?"} CHECK -- "Да" --> ACCEPT["Зафиксировать приёмку
новой редакции"] CHECK -- "Нет" --> REV{"Новая схема данных и формат графа
совместимы с прежней версией?"} REV -- "Да" --> HELM["Выполнить helm rollback
и повторить проверки"] REV -- "Нет" --> RESTORE
Схема 5.1 — Выбор способа отката обновления.
helm rollback возвращает Kubernetes-ресурсы предыдущей редакции, но не
отменяет уже выполненные необратимые изменения PostgreSQL, формата графов и
данных редактора. В таком случае восстанавливается весь согласованный набор
данных по 5.1. Предыдущие чарты, образы и данные редактора не удаляются до
подтверждения новой версии и окончания установленного периода наблюдения.
5.3. Управление ёмкостью и очистка данных¶
| Область | Что контролируется | Управляющие параметры или действие |
|---|---|---|
| База сценариев | Размер базы, число сценариев, версий и графов, архивные записи | Штатное архивирование и удаление; период очистки архива ARCHIVE_CLEANUP_INTERVAL_SEC; сроки хранения архива в интерфейсе |
| Том сессий | Рабочие каталоги сессий, загруженные проверочные файлы, кадры и результаты отладки | Закрытие сессий, регламент очистки каталогов завершённых сессий, лимит ephemeral storage |
| Том данных редактора | Каталог блоков, конфигурации, файлы допустимых моделей и категорий | Изменяется только при обновлении поставки; контроль целостности |
| Локальный кэш моделей | Подготовленные представления моделей на вычислительной ноде | Регламент очистки кэша; повторная загрузка из реестра моделей |
| Бакеты проверочных данных и запусков | Объём файлов, кадров, событий и журналов | Параметры очистки wf-asset-storage и wf-launch-storage по регламенту LPI-VAP-MM |
| Kafka и Redis | Отставание потребителей, число ожидающих задач, объём состояний сессий и потоков прогресса | Параллелизм исполнителей, сроки хранения Kafka и параметры очереди, согласованные с инфраструктурой |
| Журналы | Скорость роста и глубина хранения | Уровень журналирования, ротация и срок хранения централизованного журнала |
Таблица 5.3.1 — Объекты контроля ёмкости LPI-VAP-RS.
Очистка архива хранилища сценариев выполняется по расписанию: сценарии и версии, срок хранения которых в архиве истёк, удаляются окончательно. До изменения сроков хранения администратор обязан:
- Утвердить сроки хранения архивных сценариев и версий.
- Проверить резервную копию и возможность восстановления.
- Убедиться, что архивные версии не требуются для воспроизведения событий, зарегистрированных по ним, в течение установленного срока хранения событий.
- Изменить срок штатной операцией интерфейса и проконтролировать первый цикл очистки по журналам и архиву.
При достижении порога заполнения сначала определяется источник роста и проверяется работа штатной очистки. Затем, в зависимости от причины, увеличивается том или квота S3, корректируется срок хранения либо временно ограничиваются новые сессии и запуски. Расширение PVC выполняется только для StorageClass, допускающего увеличение; существующий PVC не уменьшается.
Удалять строки непосредственно из PostgreSQL, файлы из тома данных редактора или объекты из рабочего бакета MinIO запрещается: это нарушает ссылочную целостность между версиями, графами и результатами. Сценарий или версия удаляются штатной операцией после проверки использования на камерах и в запусках.
5.4. Диагностические средства и журналы¶
| Средство | Что показывает | Когда применяется |
|---|---|---|
| Helm и Kubernetes | Редакцию релиза, готовность Deployment, состояние подов, init-контейнеров, PVC, EndpointSlice и события | Ошибка развёртывания, миграции, планирования, загрузки образа или сетевого доступа |
| Централизованные журналы | Последовательность операций по времени, сервису и уровню | Основной поиск причины ошибки сохранения графа, отладки, публикации или запуска |
kubectl logs |
Текущий и предыдущий журнал конкретного контейнера | Сервис недоступен в централизованном журнале либо перезапустился |
| Журнал сессии в песочнице | Общий журнал обработки, журнал кадра, содержимое сообщения и события | Отладочная задача завершилась ошибкой либо не формирует события |
| Менеджер сессий редактора | Перечень запущенных экземпляров редактора и их состояние | Песочница не открывается, редактор не загружается или сессия не закрывается |
| Средство наблюдения за очередью | Очередь задач, активные и отказавшие исполнители | Отладка ожидает выполнения или зависла на обработке |
| Метрики PostgreSQL и MinIO | Подключения, ошибки, длительность запросов, объём баз и бакетов | Медленное открытие каталога, ошибка чтения файла, недостаток места |
| Метрики Kafka | Доступность брокера и отставание групп потребителей | Опубликованная версия не появляется у исполняющего ядра, состояние запуска не меняется |
| Метрики GPU | Доступность nvidia.com/gpu, занятость и память ускорителя |
Отладка или конвертация не запускается либо завершается по нехватке памяти |
| Пользовательский интерфейс | Идентификаторы сценария, версии, сессии и запуска, состояние и прикладное сообщение | Определение затронутого объекта и сопоставление с журналами |
Таблица 5.4.1 — Диагностические средства LPI-VAP-RS.
Рекомендуемый порядок диагностики:
- Зафиксировать время, операцию, идентификаторы сущностей и отображаемое состояние. Не повторять массово операцию до определения, была ли она фактически принята.
- Определить границу отказа: хранилище сценариев и PostgreSQL, прикладной API среды, менеджер сессий и редактор, очередь и исполнитель, конвертер, S3, брокер либо смежный компонент.
- Проверить Helm-релиз, готовность подов, число перезапусков, init-контейнеры, EndpointSlice, PVC и события пространства имён.
- Найти записи за интервал инцидента по идентификатору сценария, версии, сессии или запуска и сопоставить время между связанными сервисами.
- Проверить доступность PostgreSQL, MinIO, Kafka и Redis и наличие ресурса GPU, не выводя реквизиты подключения.
- После устранения причины повторить затронутый контрольный пример раздела 4 и проверить связанные функции.
Минимальный безопасный набор команд:
helm status <релиз> -n <пространство>
helm history <релиз> -n <пространство>
kubectl get deploy,pod,svc,endpointslice,pvc -n <пространство> -o wide
kubectl get events -n <пространство> --sort-by=.lastTimestamp
kubectl logs <под> -n <пространство> -c <контейнер> --since=30m
kubectl logs <под> -n <пространство> -c <контейнер> --previous --tail=200
Повышенный уровень журналирования включается только на время диагностики: он увеличивает объём данных и может вывести в журнал дополнительные сведения о запросах и содержимом графов. После проверки возвращается штатный уровень.
Диагностический пакет содержит описание и время инцидента, версии релиза и
образов, отфильтрованные состояния ресурсов, события, относящиеся к отказу
журналы, идентификаторы затронутых сущностей и, при согласовании, граф версии.
Из него удаляются значения Secret, строки подключения, токены, подписанные
S3-адреса и пользовательские медиафайлы, не требуемые для разбора. Полные
выгрузки kubectl cluster-info dump, переменных окружения и ресурсов Secret
не прикладываются.
5.5. Масштабирование¶
Масштабируются три разные группы нагрузок:
- хранилище сценариев
wf-scenario-storage— по числу запросов, длительности ответа и соединениям с PostgreSQL; - редактор и прикладной API среды — по числу одновременных сессий: каждая сессия занимает отдельный процесс редактора, оперативную память и рабочий каталог;
- исполнитель отладочных запусков и конвертеры — по длине очереди, времени ожидания, числу задач и доступным GPU.
Простое увеличение реплик хранилища не ускоряет отладку. Добавление исполнителей не устраняет ограничение оперативной памяти мастер-ноды под сессии редактора и пропускной способности PostgreSQL, MinIO, Kafka или сети.
Перед горизонтальным масштабированием администратор проверяет:
- допускает ли сервис несколько реплик: менеджер сессий и прикладной API хранят состояние сессий в Redis и на разделяемом томе, поэтому реплики должны иметь доступ к одному тому и одному Redis;
- не выполняет ли каждая реплика хранилища сценариев одну и ту же периодическую очистку архива;
- имеются ли свободные GPU, видеопамять, CPU, RAM и ephemeral storage;
- соответствуют ли
nodeSelector, affinity, tolerations и запросnvidia.com/gpuцелевым вычислительным узлам; - выдерживают ли PostgreSQL, MinIO, Kafka и Redis возросшее число подключений и поток данных;
- не вытеснит ли отладочная нагрузка рабочую видеоаналитику LPI-VAP-CORE.
Изменение выполняется через файл значений Helm с последующим helm upgrade.
Ручное масштабирование kubectl scale допустимо только как временная мера при
инциденте: желаемое число реплик затем переносится в Helm-конфигурацию, иначе
следующее обновление его отменит.
После масштабирования проверяются размещение подов, число доступных реплик, создание сессий разными пользователями, ошибки конкуренции, отставание групп Kafka, длина очереди, использование GPU, скорость чтения S3 и время выполнения эталонной отладки. Изменение принимается, если очередь сокращается, ошибки не растут, а рабочая видеоаналитика не ухудшилась.
При выводе вычислительной ноды новые задачи на неё не направляются; активным
задачам дают завершиться либо штатно останавливают их. Затем ноду переводят в
состояние cordon, выполняют drain с учётом локального кэша моделей и
PodDisruptionBudget и проверяют повторное размещение исполнителя. Перед
удалением ноды подтверждается достаточность ресурсов оставшегося контура.
6. Сообщения системному программисту¶
Сообщения LPI-VAP-RS выводятся в веб-интерфейсе, ответах прикладных интерфейсов, событиях Kubernetes и журналах составных частей. В таблицах ниже приведены устойчивые признаки сообщений, их смысл и безопасный порядок действий. Точная формулировка может различаться между версиями образов, поэтому при диагностике вместе с сообщением фиксируются время, имя составной части, версия образа и идентификаторы сценария, версии, сессии, запуска или фоновой задачи. Пользовательские сообщения и действия с объектами приведены в руководстве пользователя.
6.1. Сообщения при настройке¶
| Сообщение или признак | Вероятная причина | Действия администратора |
|---|---|---|
helm lint или helm template сообщает об отсутствующем либо недопустимом значении |
Не заполнен обязательный параметр или значение не соответствует схеме чарта | Исправить файл значений по разделу 3 и приложению А; повторить обе проверки до обращения к кластеру |
Под находится в состоянии Pending |
Недостаточно CPU, памяти, GPU или ephemeral storage; не выполнены правила размещения; PVC не связан | Просмотреть kubectl describe pod и события; проверить requests/limits, метки нод, affinity, tolerations и PVC |
ErrImagePull или ImagePullBackOff |
Образ или тег отсутствует, нет доступа к реестру либо неверен imagePullSecret |
Сверить образ и digest с формуляром, проверить Secret и его привязку к ServiceAccount; не заменять тег несогласованной версией |
PersistentVolumeClaim находится в состоянии Pending |
Нет подходящего StorageClass, ёмкости или режима доступа | Проверить запрос PVC, события контроллера хранения и доступную ёмкость; запуск хранилищ продолжать только после состояния Bound |
CrashLoopBackOff сразу после установки |
Ошибка конфигурации, миграции, подключения к зависимости или несовместимость образов | Просмотреть события, текущий и предыдущий журналы контейнера; проверить ConfigMap, Secret, версии образов и состояние зависимостей |
wf-scenario-storage не подключается к PostgreSQL |
База или учётная запись не создана, неверен адрес, закрыт сетевой доступ либо не завершена инициализация | Проверить готовность PostgreSQL, наличие базы и сетевую политику; реквизиты сверять без вывода их значений в протокол |
Сервис ожидает зависимости (wait-depends) и не переходит к запуску |
Недоступен адрес из перечня DEPENDS: Kafka, MinIO, Redis или сервис инициализации базы |
Проверить разрешение имён и доступность каждой зависимости из пода; исправить перечень или сетевую политику |
| Составная часть не подключается к Kafka | Брокер или DNS недоступен, неверны адреса либо параметры защищённого соединения | Проверить поды и Service Kafka, разрешение имени, сетевой доступ и параметры клиента; затем проконтролировать отставание групп |
| Прикладной API или исполнитель не подключается к Redis | Неверны адреса, Secret либо сетевые правила; Redis ещё не готов | Проверить готовность Redis контура песочницы, EndpointSlice и журналы sbx-sandbox-backend и sbx-celery |
| Редактор не загружает палитру или показывает пустые группы блоков | Том данных редактора не подключён, конфигурации блоков отсутствуют либо модули отключены перечнем | Проверить подключение томов, состав каталога конфигураций и файл отключённых модулей; сверить с составом поставки |
| Исполнитель или конвертер не получает GPU | Нода не публикует nvidia.com/gpu, ресурс не запрошен, не выполнено правило размещения либо несовместимы драйвер и среда исполнения |
Проверить kubectl describe node, запросы ресурсов пода, device plugin, драйвер и согласованные версии CUDA/TensorRT |
| Исполнитель не находит сокет конвертера | Конвертер не запущен либо каталог сокетов не является общим для подов | Проверить запуск конвертеров, общий временный том и значения YOLO_CONVERSION_URI и MMLAB_CONVERSION_URI |
| Ошибка применения схемы данных при старте хранилища сценариев | Версия сервиса несовместима с состоянием БД либо миграция была прервана | Остановить обновление; определить завершившиеся миграции и выполнить откат по 5.2, при необратимом изменении восстановить согласованную копию |
| Раздел «Сценарии» отсутствует или операции недоступны после входа | Через общий шлюз не передано требуемое полномочие либо маршрут компонента отключён | Проверить ролевую настройку и маршруты LPI-VAP-CORE. Отдельный OIDC-клиент и прямое подключение RS к СУДИР не настраивать |
Таблица 6.1.1 — Сообщения и признаки ошибок при настройке.
6.2. Сообщения при проверке¶
| Сообщение или признак | Вероятная причина | Действия администратора |
|---|---|---|
| Проверка готовности сервиса неуспешна или под перезапускается | Недоступна зависимость, не завершена миграция либо неверна конфигурация probe | Проверить события, EndpointSlice и журналы контейнера; устранить первичную ошибку зависимости, затем повторить проверку 4.1 |
Ответ API 400 |
Поле запроса имеет неверный тип, формат или недопустимое значение | Сопоставить поле с контрактом API; исправить запрос, не изменяя серверные данные вручную |
Ответ API 401 или 403 |
Пользовательский контекст отсутствует, истёк либо не содержит требуемого полномочия | Повторить вход через LPI-VAP-CORE и проверить роль. При массовом отказе проверить общий шлюз и средство доступа CORE, а не настраивать СУДИР в RS |
Ответ API 404 |
Сценарий, версия, сессия или маршрут отсутствует, удалён, архивирован либо недоступен | Проверить идентификатор, архив и маршрут шлюза; обновить данные интерфейса перед повтором |
Ответ API 409, в том числе Scenario with id … has unpublished version |
Конфликт состояния: у сценария есть черновая версия, наименование не уникально либо операция несовместима с текущим статусом | Опубликовать или удалить черновик, обновить перечень и повторить только допустимую операцию |
| «Не удалось загрузить редактор» или длительная загрузка песочницы | Менеджер сессий не создал экземпляр редактора: исчерпаны ресурсы, не подключён том сессий либо недоступен Redis | Проверить журналы sbx-sandbox-backend и sbx-node-red-vl, число запущенных экземпляров и ресурсы мастер-ноды |
| «Не удалось отправить сценарии» | Сессия закрыта, граф не зафиксирован кнопкой «Deploy», версия опубликована либо недоступно хранилище сценариев или менеджер графов | Проверить состояние сессии, доступность wf-scenario-storage и inf-flows-manager; повторить сохранение из открытой сессии |
| «Не удалось обновить зоны и модели» | Исполнитель не выполнил синхронизацию: недоступен реестр моделей, хранилище камер либо неверна служебная учётная запись | Проверить журнал sbx-celery, адреса и реквизиты синхронизации; повторить операцию |
| «Не удалось запустить инференс» | Исполнитель не принял задачу: очередь недоступна, нет свободного исполнителя, граф не зафиксирован либо модель не загружена | Проверить очередь, исполнителей, GPU и журнал сессии; после устранения причины повторить обработку |
| «Зоны не найдены» | Для файла ассета не размечены зоны либо недоступно хранилище проверочных данных | Проверить версию ассета и доступность wf-asset-storage; при отсутствии зон разметить их в ассете |
| Ошибка публикации версии | У версии нет сохранённого графа либо хранилище не смогло извлечь параметры блоков | Проверить наличие графа у версии, доступность inf-flows-manager и журнал хранилища; повторить публикацию после сохранения графа |
| Запуск длительно остаётся созданным или с нулевым прогрессом | Задача не получена исполнителем, недоступна очередь, Redis, S3 или нет свободного GPU | Проверить wf-launch-storage, sbx-sandbox-backend, очередь, Redis, S3 и размещение исполнителей; не создавать дубли до проверки исходной задачи |
| Опубликованная версия не появилась у исполняющего ядра или в LPI-VAP-CORE | Сообщение current_scenarios не доставлено, отстаёт потребитель либо версия фактически не опубликована |
Проверить признак публикации, топик и отставание группы потребителя; прямое изменение записей в БД не выполнять |
| Массовая замена версии модели выполнена не для всех сценариев | Часть сценариев недоступна, содержит черновик либо не использует заменяемую версию | Получить перечень неуспешных сценариев из результата операции и повторить только для них после устранения причины |
| Архивирование отклонено | У сценария есть черновик либо версия назначена камерам или используется в запусках | Получить перечень зависимостей, штатно устранить их и повторить операцию после обновления перечня |
Таблица 6.2.1 — Сообщения и признаки ошибок при проверке программы.
6.3. Сообщения при выполнении программы¶
| Сообщение или признак | Причина | Влияние | Действия администратора |
|---|---|---|---|
| Песочница не открывается, экземпляры редактора накапливаются | Сессии не закрываются штатно, исчерпаны память или процессы мастер-ноды | Пользователи не могут редактировать и отлаживать версии | Проверить число экземпляров через менеджер сессий, остановить осиротевшие сессии, скорректировать лимиты и срок неактивной сессии |
| Отставание группы потребителя Kafka устойчиво растёт | Сервис остановлен, недостаточно реплик или производительности, всплеск публикаций | Задерживаются публикация, обновление настроек сценариев и состояния запусков | Определить отстающую группу и сервис; устранить отказ либо масштабировать допустимую нагрузку по 5.5 |
| Очередь задач растёт, активных исполнителей нет | sbx-celery не готов, потеряна связь с Redis или не выделен GPU |
Новые отладки и проверочные запуски ожидают выполнения | Проверить исполнителей, очередь, Redis, события планирования и GPU; после восстановления убедиться, что ранее принятые задачи продолжили обработку |
| Отладочная задача завершена по тайм-ауту или остановлена | Файл слишком велик, недостаточно ресурсов, завис процесс модели или конвертера | Результаты отладки неполны | Сопоставить длительность с эталоном, проверить ресурсы и журнал сессии; менять тайм-ауты только после подтверждения штатной длительной обработки |
| В журнале присутствует признак нехватки памяти GPU | На ускорителе конкурируют задачи, модель превышает доступную память или неверно задан параллелизм | Отладка завершается ошибкой; рабочая видеоаналитика может деградировать | Проверить занятость GPU и размещение; снизить параллелизм или перенести нагрузку, не вытесняя LPI-VAP-CORE |
| Блок графа неизвестен исполнителю или исполняющему ядру | Состав палитры редактора отличается от состава блоков исполнителя либо ядра | Версия не отлаживается или не исполняется на камерах | Согласовать версии образов и данные редактора; исключить блок из палитры либо обновить исполнитель и ядро |
| Ошибка чтения или записи объекта S3 | MinIO недоступен, истёк сертификат, изменены права или заполнено хранилище | Нельзя загрузить проверочный файл либо сохранить результат | Восстановить доступность и ёмкость S3, проверить права и сертификат; затем повторить контроль чтения и записи |
| Исчерпан том сессий, кэш моделей или ephemeral storage | Не работает очистка, выросло число сессий, объём проверочных файлов или результатов | Возможны ошибки открытия сессий, загрузки файлов и перезапуски подов | Выполнить диагностику и штатную очистку по 5.3; при необходимости расширить поддерживающий это PVC |
| PostgreSQL отклоняет соединения или запросы выполняются с тайм-аутом | База недоступна, исчерпан пул подключений, блокировка или недостаточно ресурсов | Каталог сценариев и версии не открываются, сохранение не фиксируется | Проверить состояние БД, подключения, блокировки и ресурсы; не удалять и не исправлять прикладные строки вручную |
Шлюз возвращает 502 или 503 для маршрутов /sandbox/ или /api/ |
Сервис не готов, EndpointSlice пуст, нарушено разрешение имени или шлюз использует неактуальную конечную точку | Раздел или песочница временно недоступны | Проверить поды, Service, EndpointSlice и DNS, затем конфигурацию общего шлюза и sbx-nginx; после восстановления повторить прикладной запрос |
| Интерфейс не получает прогресс обработки | Разорвано WebSocket-соединение, недоступен канал уведомлений либо поток состояний Redis | Пользователь может считать задачу зависшей и повторить её | Сверить состояние через API и журнал сессии, проверить маршрут канала уведомлений; не считать отображение единственным источником состояния |
| Срок хранения архива истекает либо объект удалён очисткой | Достигнут настроенный срок или выполнено окончательное удаление | Сценарий нельзя восстановить через интерфейс | До истечения срока восстановить требуемый объект; для удалённого использовать согласованную резервную копию по 5.1 |
Таблица 6.3.1 — Сообщения и признаки отказов при выполнении программы.
При обращении в службу сопровождения передаются время и часовой пояс, наименование составной части, версия релиза и образа, наблюдаемый признак, действия перед отказом, идентификаторы сценария, версии, сессии, запуска и задачи, а также отфильтрованные события Kubernetes и журналы за соответствующий интервал. Пароли, токены, содержимое Secret, строки подключения, подписанные S3-адреса и пользовательские медиафайлы без отдельного согласования не передаются.
6.4. Диагностические коды¶
| Группа | Значения или признаки | Смысл и применение |
|---|---|---|
| Коды ответов API | 200 — успешно; 400 — недопустимый запрос; 401 — отсутствует или истёк пользовательский контекст; 403 — нет полномочия; 404 — объект или маршрут не найден; 409 — конфликт состояния; 500 — внутренняя ошибка; 502/503 — целевой сервис недоступен через шлюз |
Определяют границу между ошибкой запроса, доступа, состояния данных, сервиса и маршрутизации |
| Состояния пода | Pending; Running; Succeeded; Failed; CrashLoopBackOff; ImagePullBackOff |
Используются для определения стадии запуска и инфраструктурной причины отказа |
| Проверки контейнера | startup, readiness и liveness: успешно или неуспешно | Неуспешная readiness исключает под из обслуживания; liveness может вызвать перезапуск, startup защищает длительный начальный запуск |
| Состояния PVC | Pending; Bound; Lost |
Показывают возможность использования постоянного тома; рабочее хранилище запускают только при Bound |
| Признаки версии сценария | is_published; is_default; is_editable; is_deleted; archived_at |
Определяют черновик, опубликованную версию, версию по умолчанию, архив и логическое удаление |
| Обработка запуска | created; running; completed; failed; stopped |
Определяет ожидание, выполнение, успешное завершение, отказ или остановку проверочного запуска |
| Состояние медиафайла запуска | pending; processing; completed |
Определяет положение файла в очереди обработки; успешность определяется совместно с состоянием запуска |
| Сообщения обработки сессии | task_progress; task_error |
Передаются каналом уведомлений; используются при разборе прерванной или зависшей отладки |
| Итог экспертной проверки | «Тест пройден»; «Тест пройден с ошибками»; «Тест не пройден» | Фиксируется только после завершения запуска и не заменяет технический статус обработки |
| Состояние использования версии | Число камер; действие архивирования доступно или заблокировано | Показывает наличие зависимостей, которые требуется устранить до архивирования или удаления |
| Состояние очереди | Число ожидающих и активных задач, ошибки исполнителей, отставание группы Kafka | Применяется, если асинхронное состояние не меняется при готовых API и хранилищах |
| Состояние GPU | Ресурс nvidia.com/gpu на ноде и в запросе пода; занятость и объём памяти |
Используется при ошибках планирования, отладки и конвертации |
Таблица 6.4.1 — Диагностические коды и признаки состояний LPI-VAP-RS.
При расхождении между интерфейсом и журналом сначала проверяются фактический ответ API и состояние фоновой задачи, затем доставка событий в интерфейс. Текст сообщения без версии образа и идентификатора операции не используется как единственное основание для определения причины.
Приложения¶
Приложение А (обязательное). Параметры настройки¶
Значения целевой поставки фиксируются в файле значений Helm, защищённом
хранилище реквизитов и формуляре. Имена путей в values.yaml могут различаться
между редакциями чарта; перед изменением используется схема и результат
helm template принятой версии, а не имя из другой поставки.
| Область | Параметр | Назначение и рекомендации | Применение и проверка |
|---|---|---|---|
| Размещение | Пространство имён и имя Helm-релиза | Идентификация установленного экземпляра; изменяются только по процедуре миграции | helm status, перечень ресурсов пространства имён |
| Размещение | nodeSelector, affinity и tolerations |
Разделение хранилища, редактора, прикладного API, исполнителя и конвертеров по подходящим узлам | Новая редакция Helm; проверить фактические ноды подов |
| Ресурсы | Requests/limits CPU, RAM и ephemeral storage; WORKERS прикладного API |
Защита сессий редактора, API и фоновых задач от взаимного вытеснения | Новая редакция Helm; проверить QoS, перезапуски и длительность эталонной отладки |
| GPU | Запрос nvidia.com/gpu, CUDA_VISIBLE_DEVICES, IS_USE_GPU |
Предоставление GPU исполнителю и конвертерам | Новая редакция Helm; проверить выделение ресурса, память GPU и эталонную отладку |
| Образы | Репозиторий, тег и digest каждого образа; вариант CUDA образа исполнителя | Воспроизводимое развёртывание согласованной версии | Новая редакция Helm; сверить imageID запущенных контейнеров с ведомостью поставки |
| Реестр образов | imagePullSecrets |
Доступ к закрытому реестру | Kubernetes Secret; проверить контрольную загрузку образа, значение Secret не выводить |
| Постоянные данные | StorageClass, размер и режим доступа PVC томов данных редактора, конфигураций блоков, сессий и кэша моделей | Хранение каталога блоков, сессий, результатов отладки и подготовленных моделей | Изменение PVC — по процедуре хранилища; состояние должно быть Bound, разделяемые тома — ReadWriteMany |
| PostgreSQL | POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DATABASE, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_SSL хранилища сценариев |
Хранение метаданных сценариев и графов | Открытые значения — ConfigMap/Helm, пароль — Secret; проверить соединение и миграции |
| MinIO/S3 | MINIO_ENDPOINT, MINIO_SECURE, MINIO_BUCKET, MINIO_PREFIX, реквизиты и сроки действия подписанных ссылок прикладного API |
Загрузка проверочных файлов и сохранение результатов | ConfigMap и Secret; проверить запись, чтение и удаление тестового объекта штатным API |
| Kafka | KAFKA_HOST, KAFKA_GROUP, топики хранилища сценариев и прикладного API |
Доставка публикаций, настроек сценариев, изменений типов зон, версий моделей и состояний запусков | Новая редакция Helm; проверить подключение и отсутствие устойчивого отставания |
| Redis и очередь | REDIS_HOST, REDIS_PORT, CELERY_BROKER_URL, CELERY_RESULT_BACKEND, SOCKET_REDIS_MANAGER_URL, CELERY_TIMEOUT_TASK, MAX_WORKERS_COUNT |
Состояние сессий, очередь и параллелизм отладочных задач, канал уведомлений | Новая редакция Helm; проверить регистрацию исполнителей и эталонную отладку |
| Редактор | NODE_RED_HOST, NODE_RED_PORT, NODE_RED_MANAGER_URL, NODE_RED_USED_FASTAPI_MANAGER, NODE_RED_DATA_DIR, NODE_RED_CONFIG_DATA |
Адреса редактора и менеджера сессий, размещение данных и конфигураций блоков | Новая редакция Helm; проверить создание и закрытие тестовой сессии |
| Палитра блоков | Файл отключённых модулей редактора; EXCLUDE_NODE_RED_VL_BLOCKS исполнителя |
Ограничение состава блоков для поставки | Данные редактора и Helm; проверить палитру и отладку эталонного графа |
| Модели и категории | selected-models.csv, selected-categories.yaml; MODEL_REGISTRIES_PRIORITY, VLFLOW_ENDPOINT, MODELS_PATH |
Перечень моделей и категорий, доступных в блоках; источник и кэш моделей исполнителя | Данные редактора и Helm; после обновления зон и моделей проверить перечень в блоке «Детектор» |
| Конвертеры | YOLO_CONVERSION_URI, MMLAB_CONVERSION_URI, общий временный том |
Подготовка представлений моделей для отладки | Новая редакция Helm; выполнить эталонную отладку с моделью каждого поддерживаемого семейства |
| Зоны | ZONE_STORAGE_WORK_MODE, ZONES_METHOD, ZONES_DIR |
Способ получения зон при отладке | Проверить загрузку зон из ассета и из файла |
| Синхронизация с Платформой 4.0 | BOX_URL, BOX_LOGIN, BOX_PASSWORD; CAMERA_STORAGE_URL, FLOWS_MANAGER_URL, SCENARIO_STORAGE_URL, ASSET_STORAGE_URL |
Адреса смежных сервисов и служебная учётная запись синхронизации зон и моделей | Открытые адреса — ConfigMap, реквизиты — Secret; проверить «Обновить зоны и модели из СОВА» |
| Лимиты загрузки | client_max_body_size на маршрутах /sandbox/ и /api/; UPLOAD_CONCURRENCY, HTTPX_CLIENT_TIMEOUT |
Приём проверочных файлов и ограничение нагрузки | Проверить допустимый и заведомо недопустимый файл на тестовом контуре |
| Архив | ARCHIVE_CLEANUP_INTERVAL_SEC; сроки хранения архивных сценариев и версий |
Период автоматической очистки архива и время до удаления | Изменять через Helm и штатный интерфейс; проверить столбец «До окончания хранения» |
| Каталоги по умолчанию | DEFAULT_SECTION_NAME, DEFAULT_AUTO_GEN_SCENARIO_SECTION_NAME |
Наименования каталога сценариев без каталога и каталога автоматически созданных сценариев | Проверить отображение в дереве каталогов |
| Средство наблюдения за очередью | Учётные данные и маршрут /sandbox/flower/ |
Доступ администратора к очереди задач | Secret; значение по умолчанию заменить, доступ ограничить служебной сетью |
| Журналирование | LOGGER_LEVEL, LOGGING_LEVEL, формат, корреляционные поля и срок хранения |
Поиск операции между хранилищем, API, редактором, очередью и исполнителем | Штатный уровень — информационный; повышенный включать временно и затем возвращать |
| Мониторинг | Пороги сессий, очереди, ошибок, заполнения томов и S3, перезапусков и использования GPU | Раннее выявление деградации | Проверить срабатывание оповещения контролируемым способом и маршрут доставки |
Таблица А.1 — Параметры настройки LPI-VAP-RS.
| Группа значения | Источник | Ресурс Kubernetes | Конфиденциальность | Способ применения |
|---|---|---|---|---|
| Размещение, ресурсы и образы | Файл значений Helm | Deployment, StatefulSet, Job и шаблоны подов | Нет | helm upgrade с предварительными helm lint и helm template |
| Открытые адреса, имена бакетов, топиков и режимы | Файл значений Helm | ConfigMap и шаблон рабочей нагрузки | Обычно нет | Новая редакция Helm; при отсутствии checksum-аннотации — контролируемый перезапуск потребителя |
| Пароли, ключи, сертификаты, маркеры и служебные учётные записи | Защищённое хранилище | Secret и монтирование/переменная потребителя | Да | Ротация с последовательной проверкой всех потребителей; значение не включать в протокол |
| Данные редактора: каталог блоков, конфигурации, допустимые модели и категории | Дистрибутив поставки | Постоянный том редактора | Нет | Замена файлов по процедуре обновления с перезапуском редактора и синхронизацией моделей |
| Постоянные тома | Схема хранения и файл значений | PVC и StorageClass | Нет | Расширение и изменение класса — отдельная операция с резервной копией |
| Сроки архивов | Веб-интерфейс RS | Прикладная конфигурация хранилища сценариев | Нет | Штатная операция интерфейса с проверкой пересчитанного срока |
Таблица А.2 — Карта применения параметров целевой поставки.
Приложение Б (рекомендуемое). Регламентные операции обслуживания¶
| Операция | Периодичность | Содержание | Подраздел |
|---|---|---|---|
| Контроль Helm и Kubernetes | Ежедневно | Состояние релиза, подов, init-контейнеров, probes, событий и числа перезапусков | 4.1 |
| Контроль сессий редактора | Ежедневно | Число запущенных экземпляров редактора, осиротевшие сессии, потребление памяти мастер-ноды | 5.4 |
| Контроль фоновых задач | Ежедневно | Отладки и запуски с нулевым прогрессом, отказавшие и повторяющиеся задачи | 5.4 |
| Контроль Kafka и очереди | Ежедневно | Отставание групп, длина очереди, число активных и отказавших исполнителей | 5.4 |
| Контроль ёмкости | Ежедневно | Заполнение PostgreSQL, S3, томов сессий, данных редактора и кэша моделей, результат последнего цикла очистки | 5.3 |
| Контроль резервного копирования | Ежедневно | Успешность последнего задания, возраст, состав, объём и доступность копии | 5.1.4 |
| Контроль GPU | Еженедельно и при росте очереди | Доступность ускорителей, память, ошибки, размещение и конкуренция с рабочей видеоаналитикой | 5.5 |
| Проверка публикации | Еженедельно | Доставка перечня опубликованных версий исполняющему ядру и LPI-VAP-CORE, отсутствие устойчивого отставания потребителей | 4.2 |
| Проверка синхронизации моделей и зон | Еженедельно и после публикации моделей | Соответствие перечня моделей в блоках редактора опубликованным версиям LPI-VAP-MM | 3.3 |
| Контроль архивов | Еженедельно | Сценарии и версии с истекающим сроком, соответствие сроков регламенту и необходимость восстановления | 5.3 |
| Проверка ротации копий и журналов | Ежемесячно | Соблюдение глубины хранения и наличие последней успешной копии после ротации | 5.1.4 |
| Контрольное восстановление | По регламенту заказчика | Восстановление на отдельном контуре и проверка согласованности PostgreSQL, томов редактора, S3 и прикладных функций | 5.1.3 |
| Проверка после изменения | По событию | Контрольные примеры раздела 4 после изменения конфигурации, состава блоков, сертификатов, состава узлов или зависимостей | 4 |
| Обновление версии | По событию | Резервная копия, проверка шаблонов, обновление, миграции, проверка загрузки графов, контрольные примеры и фиксация результата | 5.2 |
| Формирование диагностического пакета | При инциденте | Сбор минимальных сведений по приложению Е с удалением секретов и лишних пользовательских данных | 6.3 |
Таблица Б.1 — Регламентные операции обслуживания LPI-VAP-RS.
Приложение В (обязательное при подготовке целевой поставки). Уточняемые сведения¶
| Группа | Требуется установить |
|---|---|
| Kubernetes | Версия, пространство имён, имя Helm-релиза, метки узлов, affinity, tolerations, запросы и пределы ресурсов |
| Дистрибутив | Версия чарта, дочерние чарты и чарт контура песочницы, имена ресурсов sbx-* и inf-flows-manager, образы и digest, контрольные суммы, версия каталога логических блоков |
| Хранение | StorageClass, PVC томов данных редактора, конфигураций, сессий и кэша моделей, бакеты, размеры, сроки хранения, запас ёмкости и политика возврата томов |
| Вычисления | Модели GPU, драйвер, CUDA/TensorRT, вариант CUDA образа исполнителя, число параллельных отладок и одновременных сессий редактора |
| Состав функций | Перечень блоков палитры, пользовательские Python-блоки, файлы допустимых моделей и категорий, отключённые модули |
| Интеграции | Имена сервисов, маршруты шлюза /sandbox/ и /api/, топики и группы Kafka, контракты LPI-VAP-CORE, LPI-VAP-MM и исполняющего ядра, служебная учётная запись синхронизации |
| Доступ | Роли и полномочия RS, способ передачи пользовательского контекста от CORE, доступ к средству наблюдения за очередью |
| Резервное копирование | Состав, периодичность, глубина, RPO, RTO и порядок контрольного восстановления |
| Сопровождение | Пороги мониторинга, сроки хранения журналов и реквизиты службы поддержки |
Таблица В.1 — Сведения, уточняемые для целевой поставки.
Приложение Г (справочное). Исходные тексты схем Mermaid¶
RS-AG-MER-001. Схема 2.1 — Основные связи LPI-VAP-RS¶
Расположение схемы: 2.2. Связи между составными частями.
flowchart TB
CORE["LPI-VAP-CORE<br/>единый вход и пользовательский контекст"]
UI["Веб-интерфейс и API-шлюз"]
subgraph RS["LPI-VAP-RS"]
NG["sbx-nginx"]
SB["sbx-sandbox-backend"]
NR["sbx-node-red-vl"]
CEL["sbx-celery"]
SCONV["Конвертеры<br/>отладочного контура"]
SS["wf-scenario-storage"]
FM["inf-flows-manager"]
end
AS["wf-asset-storage"]
LS["wf-launch-storage"]
DB[("PostgreSQL")]
S3[("MinIO")]
K["Kafka Платформы 4.0"]
R["Redis контура песочницы"]
MM["LPI-VAP-MM<br/>реестр моделей"]
CAM["Хранилище камер<br/>LPI-VAP-CORE"]
INF["Исполняющее ядро<br/>видеоаналитики"]
CORE --> UI
UI --> NG
UI --> SS
UI --> LS
UI --> AS
NG --> SB
NG --> NR
SB --> NR
SB --> R
SB --> CEL
CEL --> R
CEL --> SCONV
CEL --> S3
SB --> SS
SB --> FM
SB --> AS
LS --> SB
SS --> DB
SS <--> K
FM --> SS
K <--> FM
MM --> FM
MM --> K
SS --> CAM
K --> INF
RS-AG-MER-002. Схема 3.1 — Размещение основных рабочих нагрузок LPI-VAP-RS¶
Расположение схемы: 3.1. Настройка на состав технических средств.
flowchart LR
GW["Общий API-шлюз<br/>Платформы 4.0"]
subgraph K8S["Кластер Kubernetes"]
subgraph APP["Узлы прикладного контура"]
NG["sbx-nginx"]
SB["sbx-sandbox-backend"]
NR["sbx-node-red-vl<br/>экземпляры редактора"]
SS["wf-scenario-storage"]
FM["inf-flows-manager"]
VOL[("Тома: данные и конфигурации<br/>редактора, сессии")]
NR --> VOL
SB --> VOL
end
subgraph GPU["Вычислительные узлы"]
CEL["sbx-celery"]
CV["Конвертеры<br/>отладочного контура"]
CACHE[("Кэш моделей")]
DEV["nvidia.com/gpu"]
CEL --> CV --> DEV
CEL --> DEV
CEL --> CACHE
end
end
PG[("PostgreSQL")]
S3[("MinIO / S3")]
K[("Kafka")]
R[("Redis контура песочницы")]
GW --> NG
GW --> SS
NG --> SB
NG --> NR
SB --> NR
SB --> SS
SB --> FM
SB <--> R
CEL <--> R
CEL --> S3
SS --> PG
SS <--> K
K <--> FM
RS-AG-MER-003. Схема 5.1 — Выбор способа отката обновления¶
Расположение схемы: 5.2. Обновление версий и откат.
flowchart TD
START["Применена новая редакция"] --> MIG{"Миграции и преобразования<br/>завершились успешно?"}
MIG -- "Нет" --> RESTORE["Остановить сервисы;<br/>восстановить БД, тома редактора и конфигурацию<br/>из согласованной копии"]
MIG -- "Да" --> CHECK{"Проверки раздела 4<br/>успешны?"}
CHECK -- "Да" --> ACCEPT["Зафиксировать приёмку<br/>новой редакции"]
CHECK -- "Нет" --> REV{"Новая схема данных и формат графа<br/>совместимы с прежней версией?"}
REV -- "Да" --> HELM["Выполнить helm rollback<br/>и повторить проверки"]
REV -- "Нет" --> RESTORE
Приложение Д (рекомендуемое). Протокол установки и приёмочной проверки¶
| Поле | Значение |
|---|---|
| Дата и время | |
| Контур, кластер и пространство имён | |
| Helm-релиз и версия чарта | |
| Перечень образов и digest | Прилагается ведомость |
| Версия каталога логических блоков и данных редактора | |
| Результат проверки инфраструктуры | Успешно / неуспешно |
| Результат установки и миграций | Успешно / неуспешно |
| Результат контрольных примеров | Успешно / неуспешно; перечень исключений |
| Выявленные отклонения | |
| Исполнитель | Должность, фамилия и инициалы, подпись |
| Представитель заказчика | Должность, фамилия и инициалы, подпись |
Таблица Д.1 — Форма протокола установки и приёмочной проверки.
Приложение Е (рекомендуемое). Состав диагностического пакета¶
| Материал | Содержание | Ограничение |
|---|---|---|
| Паспорт инцидента | Время и часовой пояс, наблюдаемый признак, затронутая функция, действия перед отказом и ожидаемый результат | Не включать пользовательские данные сверх необходимых для идентификации операции |
| Идентификаторы | Сценарий, версия, сессия редактора, ассет, версия ассета, запуск, задача и корреляционный идентификатор запроса | Не включать токены, подписанные URL и реквизиты доступа |
| Сведения о релизе | helm status, helm history, версия чарта, образы и digest затронутых составных частей, версия каталога блоков |
Значения Helm Secret и полный отрендерированный Secret не прикладывать |
| Состояние Kubernetes | Нода, Deployment, поды, PVC, EndpointSlice и события пространства имён за интервал инцидента | Ограничить выборку затронутыми ресурсами; не выгружать весь кластер без необходимости |
| Журналы | Текущий и, после перезапуска, предыдущий журнал хранилища сценариев, прикладного API, редактора, исполнителя или конвертера; журналы сессии из песочницы | Удалить пароли, строки подключения, токены, подписанные S3-адреса и содержимое проверочных файлов |
| Граф версии | Экспорт графа затронутой версии при согласовании владельца | Не включать пользовательские Python-блоки с конфиденциальной логикой без согласования |
| Хранилища и очереди | Доступность PostgreSQL, MinIO, Kafka и Redis, заполнение, число подключений, отставание группы, длина очереди и число сессий | Передавать агрегированные показатели и имена объектов без секретных значений |
| Ресурсы | CPU, RAM, ephemeral storage, PVC, сеть, GPU и видеопамять; число перезапусков и длительность задачи | Указывать период и единицы измерения; не подменять временным снимком анализ всего интервала |
| Воспроизведение | Минимальная последовательность действий, допустимый эталонный файл или ассет, фактический результат | Не прикладывать пользовательские медиафайлы без согласования владельца данных |
| Принятые меры | Изменения конфигурации, перезапуски, повторы и их результат | Не выполнять разрушающие действия на рабочем контуре только ради воспроизведения |
Таблица Е.1 — Состав диагностического пакета LPI-VAP-RS.
Лист регистрации изменений¶
| Изм. | Изменённых листов | Заменённых листов | Новых листов | Аннулированных листов | Всего листов в документе | № документа | Входящий № сопроводительного документа | Подпись | Дата |
|---|---|---|---|---|---|---|---|---|---|
| Рабочая редакция 0.1 | — | — | Все листы | — | Определяется при выпуске DOCX/PDF | Требуется присвоить при выпуске | — | Требуется подпись ответственного исполнителя | 14.09.2026 |
Таблица — Лист регистрации изменений.
Рабочая редакция 0.1 содержит заполненные сведения по всем разделам ГОСТ 19.503-79 и приложениям: назначение и границы ответственности, структуру и связи составных частей, подготовку инфраструктуры и развёртывание в Kubernetes, выбор функций и режимы работы, доступ и защиту конфигурации, проверку, резервное копирование, обновление, ёмкость, диагностику, масштабирование, сообщения и диагностические коды, параметры настройки, регламентные операции и состав диагностического пакета. Структура и оформление согласованы с руководством администратора компонента управления моделями; состав составных частей, параметры и маршруты сверены с исходным кодом сервисов, схемами развёртывания и действующей установкой BOX5. Редакция не является зарегистрированным изменением утверждённого оригинала. История подготовки рабочей редакции сохраняется в Git и не заменяет оформленный лист регистрации изменений.