Доступно с ограничениями в редакциях:  CSE Pro (1.67)

Доступно без ограничений в редакциях:  EE

Включение модуля

Для включения модуля воспользуйтесь веб-интерфейсом или следующей командой:

d8 platform module enable neuvector

Аутентификация

Аутентификация зависит от конфигурации:

  • Если включён модуль user-authn, NeuVector использует централизованную систему аутентификации Deckhouse Kubernetes Platform и поддерживает всех настроенных OAuth-провайдеров.

  • Если модуль user-authn отключён, используется локальная аутентификация NeuVector. В этом случае действует только встроенный пользователь admin, пароль которого можно получить с помощью команды:

    d8 k -n d8-neuvector get secret admin -o jsonpath='{.data.password}' | base64 -d
    

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль neuvector, включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля
  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля, или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля neuvector:

    d8 system module enable neuvector
    
  • С помощью ModuleConfig neuvector.

    Установите spec.enabled в true или false в ModuleConfig neuvector (создайте его, при необходимости).

    Пример манифеста для включения модуля neuvector:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: neuvector
    spec:
      enabled: true
    

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль neuvector, включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация», или укажите настройки модуля в формате YAML на вкладке «YAML», не включая секцию settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig neuvector на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль neuvector), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig neuvector (подробнее о настройке Deckhouse читайте в документации), выполнив следующую команду:

    d8 k edit mc neuvector
    

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig neuvector, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>
    

    Пример файла манифеста ModuleConfig neuvector:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: neuvector
    spec:
      version: 1
      enabled: true
      settings: # Параметры модуля из раздела "Параметры" ниже.
    

Требования

К версии Deckhouse: 1.68 и выше.

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.controller
      объект

      Конфигурация компонента контроллера NeuVector.

      Контроллер управляет политиками, организует сканирование и предоставляет REST API.

      • settings.controller.nodeSelector
        объект

        Структура, аналогичная spec.nodeSelector пода Kubernetes.

        Если параметр не указан, будет определяться автоматически.

        Пример:


        disktype: ssd
        
      • settings.controller.storageClass

        Имя StorageClass, которое будет использоваться в кластере по умолчанию.

        Если значение не указано, будет использоваться StorageClass, определённый в глобальном параметре storageClass.

        Глобальный параметр storageClass учитывается только при включённом модуле. Изменение глобального параметра storageClass во время работы модуля не приведёт к переподключению дисков.

        Внимание. Указание значения, отличного от текущего (используемого в существующем PVC), приведёт к переподключению дисков и удалению всех данных.

        Если указано false, будет принудительно использоваться emptyDir.

        Примеры:


        storageClass: false
        
        storageClass: nfs-storage-class
        
      • settings.controller.tolerations
        массив объектов

        Структура, аналогичная spec.tolerations пода контроллера.

        Если ничего не указано или указано false, то Deckhouse попытается вычислить значение tolerations автоматически.

        • settings.controller.tolerations.effect
          строка
        • settings.controller.tolerations.key
          строка
        • settings.controller.tolerations.operator
          строка
        • settings.controller.tolerations.tolerationSeconds
          целочисленный
        • settings.controller.tolerations.value
          строка
    • settings.highAvailability
      булевый

      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.

      Пример:


      highAvailability: true
      
    • settings.https
      объект

      Определяет тип сертификата, используемого с NeuVector.

      Этот параметр полностью переопределяет настройки global.modules.https.

      Примеры:


      customCertificate:
        secretName: foobar
      mode: CustomCertificate
      
      certManager:
        clusterIssuerName: letsencrypt
      mode: CertManager
      
      • settings.https.certManager
        объект
        • settings.https.certManager.clusterIssuerName
          строка
          Какой ClusterIssuer использовать для NeuVector. В настоящее время доступны letsencrypt, letsencrypt-staging, selfsigned; также можно определить собственный.

          По умолчанию: letsencrypt

      • settings.https.customCertificate
        объект
        • settings.https.customCertificate.secretName
          строка
          Имя Secret в namespace d8-system, используемого с NeuVector (этот Secret должен иметь формат kubernetes.io/tls).

          По умолчанию: false

      • settings.https.mode
        строка

        Режим использования HTTPS:

        • CertManager — NeuVector будет использовать HTTPS и получать сертификат от ClusterIssuer, заданного в параметре certManager.clusterIssuerName;
        • CustomCertificate — NeuVector будет использовать сертификат из namespace d8-system для HTTPS;
        • Disabled — NeuVector не будет работать в этом режиме;
        • OnlyInURI — NeuVector будет работать по HTTP (предполагается, что внешний HTTPS load balancer завершает HTTPS-трафик). Все ссылки в user-authn будут сгенерированы с использованием схемы HTTPS. Load balancer должен обеспечивать редирект с HTTP на HTTPS.

        Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

    • settings.manager
      объект

      Конфигурация компонента менеджера NeuVector (веб-интерфейс).

      Менеджер предоставляет веб-интерфейс пользователя для NeuVector.

      • settings.manager.nodeSelector
        объект

        Структура, аналогичная spec.nodeSelector пода Kubernetes.

        Если параметр не указан, он будет определён автоматически.

        Пример:


        disktype: ssd
        
      • settings.manager.tolerations
        массив объектов

        Структура, аналогичная spec.tolerations пода Kubernetes.

        Если параметр не указан или false, он будет определён автоматически.

        • settings.manager.tolerations.effect
          строка
        • settings.manager.tolerations.key
          строка
        • settings.manager.tolerations.operator
          строка
        • settings.manager.tolerations.tolerationSeconds
          целочисленный
        • settings.manager.tolerations.value
          строка
    • settings.scanner
      объект

      Конфигурация компонента сканера NeuVector.

      Сканер выполняет проверку контейнерных образов и реестров на уязвимости.

      • settings.scanner.nodeSelector
        объект

        Структура, аналогичная spec.nodeSelector пода Kubernetes.

        Если параметр не указан, будет определяться автоматически.

        Пример:


        disktype: ssd
        
      • settings.scanner.tolerations
        массив объектов

        Структура, аналогичная spec.tolerations пода Kubernetes.

        Если параметр не указан или false, он будет определён автоматически.

        • settings.scanner.tolerations.effect
          строка
        • settings.scanner.tolerations.key
          строка
        • settings.scanner.tolerations.operator
          строка
        • settings.scanner.tolerations.tolerationSeconds
          целочисленный
        • settings.scanner.tolerations.value
          строка