Стадия жизненного цикла модуля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:3
  • registry.deckhouse.io/deckhouse/ee/modules/neuvector/extra/scanner:3
  • registry.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.