Системные требования (Kubernetes)¶
Страница описывает требования для production-развёртывания AppSec.GenAI v2 в кластере Kubernetes через Helm-чарты (Wizard или ручная установка). Требования отличаются от моно-хостовой Docker Compose-инсталляции: нагрузка распределяется по нодам, инфраструктурные сервисы разворачиваются как отдельные компоненты с собственными PVC, а внешний доступ идёт через Ingress/Gateway.
Требования к кластеру¶
| Компонент | Минимум | Примечание |
|---|---|---|
| Kubernetes | 1.26+ | |
| kubectl | соответствует версии сервера | настроенный kubeconfig |
| Helm | 3.12+ | только для ручной установки |
| Docker | 24.0+ | только для запуска Wizard |
| StorageClass (CSI) | любой | обязателен при persistence=true (production) |
| Envoy Gateway | v1.5+ | только при exposure: gateway |
| NVIDIA device plugin | — | только для GPU-нагрузок (см. GPU) |
Вычислительные ресурсы¶
Требования к кластеру — суммарно по всей платформе (12 продуктовых сервисов + инфраструктура: PostgreSQL, Redis, NATS, MinIO, Keycloak в одном namespace).
| Профиль | vCPU | RAM | Назначение |
|---|---|---|---|
| Минимум | 8 | 24 ГБ | демо, пилот, лёгкая нагрузка без тяжёлых whitebox-атак |
| Рекомендуется (production) | 24+ | 48 ГБ | боевая эксплуатация, одновременные CV/ASR whitebox |
Whitebox-атаки — самая ресурсоёмкая нагрузка
Adversarial-атаки CV/ASR whitebox кратковременно нагружают воркеры в разы сильнее фонового потребления. Под них берите «рекомендуемый» уровень — иначе одновременный запуск CV whitebox + ASR whitebox может привести к падению воркеров по памяти (OOMKilled). Альтернатива при ограниченных ресурсах — разносить ресурсоёмкие атаки во времени.
Сверх вычислительных ресурсов
Дополнительно заложите дисковое пространство под PVC (см. Хранилище) и системный запас нод кластера. GPU-ноды считаются отдельно — они нужны только для whitebox-атак и опционального GPU-судьи.
Архитектура процессора
Поддерживается только x86_64 (AMD64). ARM-ноды не поддерживаются.
Хранилище (persistent volumes)¶
Для production (persistence=true) каждый инфраструктурный сервис требует собственный PVC. StorageClass должен поддерживать динамическое провизионирование (CSI). Для БД и объектного хранилища рекомендуется ReclaimPolicy=Retain.
| Компонент | Размер PVC (по умолчанию) | Примечание |
|---|---|---|
| PostgreSQL | 50 Gi | основная БД платформы |
| MinIO | 200 Gi | объектное хранилище; учитывает веса моделей (~15 ГБ Whisper + CV) |
| NATS JetStream | 10 Gi | шина событий, at-least-once delivery |
| Redis | 2 Gi | кеш и очереди |
| Keycloak | 1 Gi | конфигурация realm (при БД-независимом режиме) |
| Итого | ~263 Gi | базовая оценка без учёта роста данных |
persistence=false в production
При persistence.enabled: false инфраструктурные данные хранятся в emptyDir и теряются при перезапуске подов. Этот режим допустим только для dev/smoke-стендов.
Сеть и внешний доступ¶
Внешний доступ к платформе организуется через Envoy Gateway (exposure: gateway) либо через существующий Ingress-контроллер клиента.
Наружу публикуются только:
- UI — веб-интерфейс платформы;
- UI Gateway — API Gateway (BFF) и WebSocket-подключения из браузера.
Все остальные сервисы (продуктовые API, PostgreSQL, Redis, NATS, MinIO, Keycloak) остаются доступны только внутри кластера через ClusterIP и резолвятся по внутренним DNS-именам — знать их номера портов для эксплуатации не требуется, внешняя публикация им не нужна.
TLS и DNS при auth: true
Для production-режима с OIDC (Keycloak + Envoy SecurityPolicy) потребуется TLS-секрет и DNS-записи на публичные хосты (UI, Keycloak, MinIO) — они указываются при установке через Wizard.
GPU¶
GPU не требуется для базовой эксплуатации: все blackbox-атаки (Jailbreak, ASR blackbox, CV blackbox) работают без графического ускорителя.
GPU задействуется в двух случаях:
- Whitebox-атаки — CV whitebox (FGSM, PGD, C&W, DeepFool) и ASR BIM. Без GPU выполняются на CPU, но значительно медленнее.
- Опциональный GPU-судья (см. ниже).
Требования к GPU-ноде¶
| Параметр | Требование |
|---|---|
| Производитель | NVIDIA |
| Compute Capability | ≥ 7.0 |
| Драйвер NVIDIA | 525.x и выше |
| CUDA | 12.1+ |
| NVIDIA device plugin | установлен в кластере |
| Видеопамять (VRAM) | для whitebox-атак — 8 ГБ и более (рекомендуется 16 ГБ); для GPU-судьи — 16 ГБ и более (см. ниже) |
GPU-нода обычно помечается taint'ом (например nvidia.com/gpu=true:NoSchedule) — GPU-компоненты в этом случае настраиваются с соответствующими nodeSelector и tolerations в values.
Опциональный GPU-судья (LLM-Judge)¶
Для оценки jailbreak-атак доступен GPU-судья (llm-judge-service-gpu, модель JailJudge-guard, FP16-инференс на PyTorch/CUDA 12.1) с latency оценки ~0.5–1.5 с.
Опциональный компонент
GPU-судья предоставляется SwordFish Security по запросу и разворачивается как отдельный компонент. Требует GPU-ноду (см. требования выше).
Ресурсы GPU-судьи (при развёртывании):
| Ресурс | Requests | Limits |
|---|---|---|
| CPU | 1 | 4 |
| Memory | 8 Gi | 16 Gi |
| GPU | nvidia.com/gpu: 1 |
nvidia.com/gpu: 1 |
| VRAM | ~15 ГБ (FP16) | — |
VRAM GPU-судьи
Фактическое потребление видеопамяти GPU-судьёй — ~15 ГБ (веса JailJudge-guard в FP16 + CUDA-контекст). Карты с 8–12 ГБ VRAM для FP16-инференса не подходят — требуется GPU с 16 ГБ и более (рекомендуется 24 ГБ, особенно если GPU делится с другими нагрузками).
Модель загружается lazy при первом запросе из MinIO в emptyDir (~15 Gi под кеш) — отдельный PVC не требуется.
Реестр образов¶
Все чарты и образы поставляются из OCI-реестра:
Учётные данные (imagePullSecret) предоставляет SwordFish Security.
Поддерживаемые браузеры¶
| Браузер | Минимальная версия |
|---|---|
| Google Chrome | 120+ |
| Mozilla Firefox | 120+ |
| Яндекс Браузер | 24+ |
Веб-интерфейс требует поддержки JavaScript (ES2022+) и WebSocket.