NeuVector
https://github.com/neuvector/neuvector-helm
https://github.com/neuvector/neuvector
https://open-docs.neuvector.com/basics/overview
设置中文










安装部署
helm repo add neuvector https://neuvector.github.io/neuvector-helm/helm search repo neuvector/core
kubectl create namespace neuvector
[root@UR-20210425NAMA ~]# helm install neuvector --namespace neuvector neuvector/coreNAME: neuvectorLAST DEPLOYED: Tue Feb 22 15:10:14 2022NAMESPACE: neuvectorSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES:Get the NeuVector URL by running these commands:NODE_PORT=$(kubectl get --namespace neuvector -o jsonpath="{.spec.ports[0].nodePort}" services neuvector-service-webui)NODE_IP=$(kubectl get nodes --namespace neuvector -o jsonpath="{.items[0].status.addresses[0].address}")echo https://$NODE_IP:$NODE_PORT[root@UR-20210425NAMA ~]#
kubectl set image deployment.apps/neuvector-controller-pod *=neuvector/controller.preview:5.0.0-preview.2 -n neuvectorkubectl set image deployment.apps/neuvector-manager-pod *=neuvector/manager.preview:5.0.0-preview.2 -n neuvectorkubectl set image deployment.apps/neuvector-scanner-pod *=neuvector/scanner.preview:latest -n neuvectorkubectl set image daemonset.apps/neuvector-enforcer-pod *=neuvector/enforcer.preview:5.0.0-preview.2 -n neuvectorkubectl get cronjob/neuvector-updater-pod -n neuvector -o yaml | sed 's#image: registry.neuvector.com/updater:latest#image: neuvector/updater.preview:latest#' | kubectl replace -f -
修改镜像版本
[root@UR-20210425NAMA ~]# ls -l core-1.9.1.tgz-rw-r--r-- 1 root root 14393 Mar 3 10:21 core-1.9.1.tgz[root@UR-20210425NAMA ~]# tar xf core-1.9.1.tgz[root@UR-20210425NAMA ~]# cd core/[root@UR-20210425NAMA core]# ls -ltotal 32-rwxr-xr-x 1 root root 285 Feb 19 15:43 Chart.yaml-rwxr-xr-x 1 root root 16378 Feb 19 15:43 README.mddrwxr-xr-x 1 root root 4096 Mar 3 10:22 templates-rwxr-xr-x 1 root root 6550 Feb 19 15:43 values.yaml[root@UR-20210425NAMA core]# cat values.yaml# Default values for neuvector.# This is a YAML-formatted file.# Declare variables to be passed into the templates.openshift: falseregistry: registry.neuvector.comtag: 4.4.4oem:imagePullSecrets:psp: falseserviceAccount: defaultcontroller:# If false, controller will not be installedenabled: truestrategy:type: RollingUpdaterollingUpdate:maxSurge: 1maxUnavailable: 0image:repository: neuvector/controllerhash:replicas: 3disruptionbudget: 0schedulerName:priorityClassName:env: []affinity:podAntiAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 100podAffinityTerm:labelSelector:matchExpressions:- key: appoperator: Invalues:- neuvector-controller-podtopologyKey: "kubernetes.io/hostname"tolerations: []nodeSelector: {}# key1: value1# key2: value2apisvc:type:annotations: {}# OpenShift Route configurationroute:enabled: falsetermination: passthroughhost:pvc:enabled: falseaccessModes:- ReadWriteManystorageClass:capacity:azureFileShare:enabled: falsesecretName:shareName:certificate:secret:keyFile: tls.keypemFile: tls.pemfederation:mastersvc:type:# Federation Master Ingressingress:enabled: falsehost: # MUST be set, if ingress is enabledpath: "/" # or this could be "/api", but might need "rewrite-target" annotationannotations:ingress.kubernetes.io/protocol: https# ingress.kubernetes.io/rewrite-target: /tls: falsesecretName:# OpenShift Route configurationroute:enabled: falsetermination: passthroughhost:managedsvc:type:# Federation Managed Ingressingress:enabled: falsehost: # MUST be set, if ingress is enabledpath: "/" # or this could be "/api", but might need "rewrite-target" annotationannotations:ingress.kubernetes.io/protocol: https# ingress.kubernetes.io/rewrite-target: /tls: falsesecretName:# OpenShift Route configurationroute:enabled: falsetermination: passthroughhost:ingress:enabled: falsehost: # MUST be set, if ingress is enabledpath: "/" # or this could be "/api", but might need "rewrite-target" annotationannotations:ingress.kubernetes.io/protocol: https# ingress.kubernetes.io/rewrite-target: /tls: falsesecretName:resources: {}# limits:# cpu: 400m# memory: 2792Mi# requests:# cpu: 100m# memory: 2280Miconfigmap:enabled: falsedata:# eulainitcfg.yaml: |# ...# ldapinitcfg.yaml: |# ...# oidcinitcfg.yaml: |# ...# samlinitcfg.yaml: |# ...# sysinitcfg.yaml: |# ...# userinitcfg.yaml: |# ...secret:# NOTE: files defined here have preferrence over the ones defined in the configmap sectionenabled: falsedata: {}# eulainitcfg.yaml:# license_key: 0Bca63Iy2FiXGqjk...# ...# ldapinitcfg.yaml:# directory: OpenLDAP# ...# oidcinitcfg.yaml:# Issuer: https://...# ...# samlinitcfg.yaml:# ...# sysinitcfg.yaml:# ...# userinitcfg.yaml:# ...enforcer:# If false, enforcer will not be installedenabled: trueimage:repository: neuvector/enforcerhash:priorityClassName:tolerations:- effect: NoSchedulekey: node-role.kubernetes.io/masterresources: {}# limits:# cpu: 400m# memory: 2792Mi# requests:# cpu: 100m# memory: 2280Mimanager:# If false, manager will not be installedenabled: trueimage:repository: neuvector/managerhash:priorityClassName:env:ssl: truesvc:type: NodePortloadBalancerIP:annotations: {}# azure# service.beta.kubernetes.io/azure-load-balancer-internal: "true"# service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "apps-subnet"# OpenShift Route configurationroute:enabled: truetermination: passthroughhost:certificate:secret:keyFile: tls.keypemFile: tls.pemingress:enabled: falsehost: # MUST be set, if ingress is enabledpath: "/"annotations: {}# kubernetes.io/ingress.class: my-nginx# nginx.ingress.kubernetes.io/whitelist-source-range: "1.1.1.1"# nginx.ingress.kubernetes.io/rewrite-target: /# nginx.ingress.kubernetes.io/enable-rewrite-log: "true"# only for end-to-end tls conf - ingress-nginx accepts backend self-signed cert# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"tls: falsesecretName: # my-tls-secretresources: {}# limits:# cpu: 400m# memory: 2792Mi# requests:# cpu: 100m# memory: 2280Miaffinity: {}tolerations: []nodeSelector: {}# key1: value1# key2: value2cve:updater:# If false, cve updater will not be installedenabled: truesecure: falseimage:repository: neuvector/updatertag: latesthash:schedule: "0 0 * * *"priorityClassName:scanner:enabled: truereplicas: 3dockerPath: ""strategy:type: RollingUpdaterollingUpdate:maxSurge: 1maxUnavailable: 0image:repository: neuvector/scannertag: latesthash:priorityClassName:resources: {}# limits:# cpu: 400m# memory: 2792Mi# requests:# cpu: 100m# memory: 2280Miaffinity: {}tolerations: []nodeSelector: {}# key1: value1# key2: value2docker:path: /var/run/docker.sockresources: {}# limits:# cpu: 400m# memory: 2792Mi# requests:# cpu: 100m# memory: 2280Mik3s:enabled: falseruntimePath: /run/k3s/containerd/containerd.sockbottlerocket:enabled: falseruntimePath: /run/dockershim.sockcontainerd:enabled: falsepath: /var/run/containerd/containerd.sockcrio:enabled: falsepath: /var/run/crio/crio.sockadmissionwebhook:type: ClusterIPcrdwebhook:enabled: truetype: ClusterIP[root@UR-20210425NAMA core]#
[root@ur-scm-master01 ~]# helm install neuvector --namespace neuvector neuvector/coreError: rendered manifests contain a resource that already exists. Unable to continue with install: CustomResourceDefinition "nvadmissioncontrolsecurityrules.neuvector.com" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "neuvector"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "neuvector"[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# helm -n neuvector listNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# kubectl get crd | grep nvadnvadmissioncontrolsecurityrules.neuvector.com 2022-01-19T05:23:50Z[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# kubectl delete crd nvadmissioncontrolsecurityrules.neuvector.comcustomresourcedefinition.apiextensions.k8s.io "nvadmissioncontrolsecurityrules.neuvector.com" deleted[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# helm install neuvector --namespace neuvector neuvector/coreError: rendered manifests contain a resource that already exists. Unable to continue with install: CustomResourceDefinition "nvwafsecurityrules.neuvector.com" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "neuvector"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "neuvector"[root@ur-scm-master01 ~]# kubectl get crd | grep neuvectornvwafsecurityrules.neuvector.com 2022-01-19T05:23:50Z[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# kubectl delete crd nvwafsecurityrules.neuvector.comcustomresourcedefinition.apiextensions.k8s.io "nvwafsecurityrules.neuvector.com" deleted[root@ur-scm-master01 ~]# helm install neuvector --namespace neuvector neuvector/coreNAME: neuvectorLAST DEPLOYED: Thu Mar 3 10:06:43 2022NAMESPACE: neuvectorSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES:Get the NeuVector URL by running these commands:NODE_PORT=$(kubectl get --namespace neuvector -o jsonpath="{.spec.ports[0].nodePort}" services neuvector-service-webui)NODE_IP=$(kubectl get nodes --namespace neuvector -o jsonpath="{.items[0].status.addresses[0].address}")echo https://$NODE_IP:$NODE_PORT[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# helm install neuvector --namespace neuvector neuvector/coreError: rendered manifests contain a resource that already exists. Unable to continue with install: CustomResourceDefinition "nvadmissioncontrolsecurityrules.neuvector.com" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "neuvector"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "neuvector"[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# helm -n neuvector listNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# kubectl get crd | grep nvadnvadmissioncontrolsecurityrules.neuvector.com 2022-01-19T05:23:50Z[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# kubectl delete crd nvadmissioncontrolsecurityrules.neuvector.comcustomresourcedefinition.apiextensions.k8s.io "nvadmissioncontrolsecurityrules.neuvector.com" deleted[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# helm install neuvector --namespace neuvector neuvector/coreError: rendered manifests contain a resource that already exists. Unable to continue with install: CustomResourceDefinition "nvwafsecurityrules.neuvector.com" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "neuvector"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "neuvector"[root@ur-scm-master01 ~]# kubectl get crd | grep neuvectornvwafsecurityrules.neuvector.com 2022-01-19T05:23:50Z[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]#[root@ur-scm-master01 ~]# kubectl delete crd nvwafsecurityrules.neuvector.comcustomresourcedefinition.apiextensions.k8s.io "nvwafsecurityrules.neuvector.com" deleted[root@ur-scm-master01 ~]# helm install neuvector --namespace neuvector neuvector/coreNAME: neuvectorLAST DEPLOYED: Thu Mar 3 10:06:43 2022NAMESPACE: neuvectorSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES:Get the NeuVector URL by running these commands:NODE_PORT=$(kubectl get --namespace neuvector -o jsonpath="{.spec.ports[0].nodePort}" services neuvector-service-webui)NODE_IP=$(kubectl get nodes --namespace neuvector -o jsonpath="{.items[0].status.addresses[0].address}")echo https://$NODE_IP:$NODE_PORT[root@ur-scm-master01 ~]#
