Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Установка Neuvector в конфигурации по умолчанию

Для установки модуля Neuvector в Nova Container Platform SE используйте один из представленных далее манифестов:

Для кластера в конфигурации по умолчанию
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: nova-release-neuvector-pre
  namespace: nova-gitops
  labels:
    nova-application-group: cluster-security
    kustomization.nova-platform.io/cluster: "true"
spec:
  serviceAccountName: kustomize-controller
  commonMetadata:
    labels:
      app.kubernetes.io/managed-by: Nova
  interval: 10m
  retryInterval: 30s
  timeout: 5m
  prune: true
  sourceRef:
    kind: GitRepository
    name: nova-release-gitrepo-main
  path: ./resources/neuvector/pre
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: nova-release-neuvector-main
  namespace: nova-gitops
  labels:
    nova-application-group: cluster-security
    kustomization.nova-platform.io/cluster: "true"
spec:
  serviceAccountName: kustomize-controller
  commonMetadata:
    labels:
      app.kubernetes.io/managed-by: Nova
  interval: 10m
  retryInterval: 30s
  timeout: 5m
  prune: true
  dependsOn:
  - name: nova-release-ingress-internal-main
  - name: nova-release-prometheus-main
  - name: nova-release-cert-manager-post
  sourceRef:
    kind: GitRepository
    name: nova-release-gitrepo-main
  path: ./resources/neuvector/main
  postBuild:
    substituteFrom:
    - kind: ConfigMap
      name: nova-gitops-common-substitute-config
  healthChecks:
    - apiVersion: apps/v1
      kind: Deployment
      name: neuvector-manager-pod
      namespace: nova-neuvector
    - apiVersion: apps/v1
      kind: Deployment
      name: neuvector-registry-adapter-pod
      namespace: nova-neuvector
    - apiVersion: apps/v1
      kind: Deployment
      name: neuvector-scanner-pod
      namespace: nova-neuvector
    - apiVersion: apps/v1
      kind: DaemonSet
      name: neuvector-enforcer-pod
      namespace: nova-neuvector
    - apiVersion: apps/v1
      kind: StatefulSet
      name: neuvector-controller-pod
      namespace: nova-neuvector
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: nova-release-neuvector-post
  namespace: nova-gitops
  labels:
    nova-application-group: cluster-security
    kustomization.nova-platform.io/cluster: "true"
spec:
  serviceAccountName: kustomize-controller
  commonMetadata:
    labels:
      app.kubernetes.io/managed-by: Nova
  interval: 10m
  retryInterval: 30s
  timeout: 5m
  prune: true
  dependsOn:
  - name: nova-release-neuvector-main
  sourceRef:
    kind: GitRepository
    name: nova-release-gitrepo-main
  path: ./resources/neuvector/post
  postBuild:
    substituteFrom:
    - kind: ConfigMap
      name: nova-gitops-common-substitute-config
  healthChecks:
    - apiVersion: apps/v1
      kind: Deployment
      name: neuvector-prometheus-exporter-pod
      namespace: nova-neuvector
Для высокодоступного кластера в рекомендуемой конфигурации
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: nova-release-neuvector-pre
  namespace: nova-gitops
  labels:
    nova-application-group: cluster-security
    kustomization.nova-platform.io/cluster: "true"
spec:
  serviceAccountName: kustomize-controller
  commonMetadata:
    labels:
      app.kubernetes.io/managed-by: Nova
  interval: 10m
  retryInterval: 30s
  timeout: 5m
  prune: true
  sourceRef:
    kind: GitRepository
    name: nova-release-gitrepo-main
  path: ./resources/neuvector/pre
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: nova-release-neuvector-main
  namespace: nova-gitops
  labels:
    nova-application-group: cluster-security
    kustomization.nova-platform.io/cluster: "true"
spec:
  patches:
    - patch: |
        - op: replace
          path: /spec/replicas
          value: 3
      target:
        kind: StatefulSet
        name: neuvector-controller-pod
        namespace: nova-neuvector
  serviceAccountName: kustomize-controller
  commonMetadata:
    labels:
      app.kubernetes.io/managed-by: Nova
  interval: 10m
  retryInterval: 30s
  timeout: 5m
  prune: true
  dependsOn:
  - name: nova-release-ingress-internal-main
  - name: nova-release-prometheus-main
  - name: nova-release-cert-manager-post
  sourceRef:
    kind: GitRepository
    name: nova-release-gitrepo-main
  path: ./resources/neuvector/main
  postBuild:
    substituteFrom:
    - kind: ConfigMap
      name: nova-gitops-common-substitute-config
  healthChecks:
    - apiVersion: apps/v1
      kind: Deployment
      name: neuvector-manager-pod
      namespace: nova-neuvector
    - apiVersion: apps/v1
      kind: Deployment
      name: neuvector-registry-adapter-pod
      namespace: nova-neuvector
    - apiVersion: apps/v1
      kind: Deployment
      name: neuvector-scanner-pod
      namespace: nova-neuvector
    - apiVersion: apps/v1
      kind: DaemonSet
      name: neuvector-enforcer-pod
      namespace: nova-neuvector
    - apiVersion: apps/v1
      kind: StatefulSet
      name: neuvector-controller-pod
      namespace: nova-neuvector
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: nova-release-neuvector-post
  namespace: nova-gitops
  labels:
    nova-application-group: cluster-security
    kustomization.nova-platform.io/cluster: "true"
spec:
  serviceAccountName: kustomize-controller
  commonMetadata:
    labels:
      app.kubernetes.io/managed-by: Nova
  interval: 10m
  retryInterval: 30s
  timeout: 5m
  prune: true
  dependsOn:
  - name: nova-release-neuvector-main
  sourceRef:
    kind: GitRepository
    name: nova-release-gitrepo-main
  path: ./resources/neuvector/post
  postBuild:
    substituteFrom:
    - kind: ConfigMap
      name: nova-gitops-common-substitute-config
  healthChecks:
    - apiVersion: apps/v1
      kind: Deployment
      name: neuvector-prometheus-exporter-pod
      namespace: nova-neuvector

1. Установка модуля Neuvector

1.1. Предварительные условия

1.2. Установка с помощью kubectl

  1. Сохраните представленный выше манифест в файл, например, neuvector.yaml.

  2. Установите манифест в кластер Kubernetes, выполнив команду:

    kubectl apply -f neuvector.yaml
  3. Проверьте состояние запущенных компонентов Neuvector, выполнив команду:

    kubectl get pods -n nova-neuvector
  4. Проверьте состояние Cluster Kustomizations, выполнив команду:

    kubectl get ks -l nova-application-group=cluster-security -n nova-gitops

1.3. Установка с помощью Nova Console

  1. Скопируйте представленный выше манифест в буфер обмена.

  2. Выполните вход в Nova Console.

  3. Используйте опцию импорта нового объекта и вставьте в форму ранее скопированный манифест.

    Установка модуля Neuvector
    Рисунок 1. Установка модуля Neuvector
  4. Перейдите в раздел Workloads, далее Pods и выберете пространство имен nova-neuvector. Проверьте состояние запущенных компонентов Neuvector.

  5. Перейдите в раздел Administration, далее Cluster Settings, во вкладке Configuration выберете Cluster Kustomizations. Проверьте состояние Cluster Kustomizations с именем nova-neuvector.