Стадия жизненного цикла модуля: Experimental
У модуля есть требования для установки
Почему возникает ошибка Error: group criteria mismatch при импорте политики?
Это означает, что критерии группы не совпадают между источником и назначением. Убедитесь, что конфигурация групп одинаковая на обеих сторонах.
Что делать, если появляется ошибка Error: cross-namespace policy creation denied?
Эта ошибка указывает на попытку создания политики между пространствами имён. Для таких случаев используйте объект типа NvClusterSecurityRule.
Как проверить состояние компонентов NeuVector?
Информация о состоянии компонентов отображена в консоли, в разделе Assets → System components.
Что проверять при ошибках, связанных с сертификатами?
Убедитесь, что TLS-сертификаты корректно настроены, действительны и доверенные. Команда для запроса сертификата:
d8 k get -n d8-neuvector secret internal-tls -oyamlЧто произойдёт, если не настроен постоянный том (PV)?
Данные не сохранятся. В этом случае необходимо выполнить ручной экспорт конфигурации через интерфейс: Settings → Configuration.
Какие тома поддерживаются NeuVector?
Поддерживается любой том с режимом доступа RWO (ReadWriteOnce) — Контроллер работает в единственной реплике, поэтому том никогда не монтируется более чем одним подом одновременно.
Как изменить таймаут пользовательской сессии в NeuVector?
Перейдите в правый верхний угол интерфейса NeuVector, откройте My Profile → Session timeout и укажите желаемое время в секундах. По умолчанию сессия завершается через 5 минут (300 секунд), максимальное значение — 3600 секунд (1 час).
Как проверить версии CVE-базы
Чтобы проверить версию CVE-базы, откройте консоль и перейдите в раздел Assets → System components -> Scanner — информация о версии отображается в этом разделе.
Как сделать разовое сканирование образа с помощью NeuVector Scanner
Образ сканера, собираемый Deckhouse, публикуется под тегом extra/scanner:3 через CI-job .cvedb_update (см. .gitlab-ci.yml). Тег подвижный — он перезаписывается каждым плановым ребилдом CVE DB и каждым релизным тегом, поэтому всегда содержит свежую базу уязвимостей. По содержимому образ совпадает с тем, что крутится в neuvector-scanner-pod на той же версии модуля.
Путь к образу и креды реестра
Образ публикуется только для редакций fe, ee, se-plus (см. матрицу в .gitlab-ci.yml); ни одна из них не анонимная. Используйте те же креды, которыми вы ставили Deckhouse:
d8 k -n d8-system get secret deckhouse-registry \
-o jsonpath='{.data.\.dockerconfigjson}' | base64 -d > /tmp/d8-dockercfg.json
DOCKER_CONFIG=$(mktemp -d)
cp /tmp/d8-dockercfg.json "$DOCKER_CONFIG/config.json"
export DOCKER_CONFIG(Все docker/crane/skopeo команды ниже подхватят этот $DOCKER_CONFIG.)
Путь к образу в реестре имеет стандартный layout <registry>/deckhouse/<edition>/modules/neuvector/extra/scanner:3, например:
registry.deckhouse.io/deckhouse/fe/modules/neuvector/extra/scanner:3registry.deckhouse.io/deckhouse/ee/modules/neuvector/extra/scanner:3registry.deckhouse.io/deckhouse/se-plus/modules/neuvector/extra/scanner:3
Если нужна воспроизводимая ссылка (плавающий тег съедет при следующем CVE-обновлении), фиксируйте по digest:
crane digest registry.deckhouse.io/deckhouse/fe/modules/neuvector/extra/scanner:3
# -> sha256:...…и подставляйте …/extra/scanner@sha256:… в примеры ниже.
Сканирование образа, уже загруженного в локальный Docker
IMAGE=registry.deckhouse.io/deckhouse/fe/modules/neuvector/extra/scanner:3
docker run --rm \
-e SCANNER_REPOSITORY=ubuntu \
-e SCANNER_TAG=22.04 \
-e SCANNER_ON_DEMAND=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$HOME/neuvector-out:/var/neuvector" \
"$IMAGE"Сканирование образа напрямую из удалённого реестра (без локального pull)
IMAGE=registry.deckhouse.io/deckhouse/fe/modules/neuvector/extra/scanner:3
docker run --rm \
-e SCANNER_ON_DEMAND=true \
-e SCANNER_REGISTRY=registry.example.com \
-e SCANNER_REPOSITORY=myproject/service \
-e SCANNER_TAG=1.2.3 \
-e SCANNER_REGISTRY_USERNAME=myuser \
-e SCANNER_REGISTRY_PASSWORD=mytoken \
-v "$HOME/neuvector-out:/var/neuvector" \
"$IMAGE"Отправка результата в работающий контроллер
Через Ingress из controller.apiIngress либо через d8 k port-forward. В качестве учётных данных нужен локальный NeuVector-пользователь с правом scanner — пользователь, существующий только в OIDC, не подойдёт: standalone-сканер ходит на REST API контроллера с username/password, а не через Dex.
IMAGE=registry.deckhouse.io/deckhouse/fe/modules/neuvector/extra/scanner:3
docker run --rm \
-e SCANNER_ON_DEMAND=true \
-e SCANNER_REGISTRY=registry.example.com \
-e SCANNER_REPOSITORY=myproject/service \
-e SCANNER_TAG=1.2.3 \
-e CLUSTER_JOIN_ADDR=neuvector-api.<publicDomainTemplate> \
-e CLUSTER_JOIN_PORT=443 \
-e SCANNER_CTRL_API_USERNAME=<api-user> \
-e SCANNER_CTRL_API_PASSWORD=<api-password> \
"$IMAGE"Что и куда пишется
Отчёт о сканировании и разбор по слоям пишутся в /var/neuvector внутри контейнера — смонтируйте туда директорию хоста, чтобы артефакты остались после завершения запуска. SCANNER_ON_DEMAND=true переводит monitor в standalone-режим и заставляет его завершиться сразу после сканирования (см. monitor/monitor.c в neuvector/scanner). Полный набор переменных окружения (SCANNER_REPOSITORY, SCANNER_TAG, SCANNER_REGISTRY, SCANNER_REGISTRY_USERNAME, SCANNER_REGISTRY_PASSWORD, SCANNER_ON_DEMAND, SCANNER_SCAN_LAYERS, SCANNER_DOCKER_URL, SCANNER_BASE_IMAGE, SCANNER_STANDALONE_TLS_VERIFICATION, CLUSTER_JOIN_ADDR, CLUSTER_JOIN_PORT, SCANNER_CTRL_API_USERNAME, SCANNER_CTRL_API_PASSWORD, PROXY_URL) совпадает с upstream NeuVector — полный список см. в Parallel & Standalone Scanners.