Aller au contenu principal
Sommaire de la formation

Déploiement de NeuVector Standalone (sans fédération)

coolibra129 vues

2. Déploiement de NeuVector

Pré-requis

Avant de déployer NeuVector, il est nécessaire de disposer :

  • Connaitre kubernetes
  • D’un cluster Kubernetes opérationnel, avec au minimum 3 vCPU et 6 Go de RAM par nœud afin de garantir les ressources nécessaires aux composants NeuVector (Controller, Enforcer, Scanner, Manager).

  • De l’outil Helm (version 3.x), qui permetra le deploiement des application sur le cluster.


Modes de déploiement

NeuVector peut être installé selon deux approches principales :

  1. Mode Standalone (sans fédération)

    • La console NeuVector (Manager) est accessible localement sur ce cluster pour l’administration.

    • Le management est limité à la seule instance nevector. Si vous avez plus clusters avec neuvector installé sur chacun, l'adminsitration ne pourra pas être centralisée. Chaque config devra être reptée autant de fois que de cluster.
    • Ce mode est adapté aux environnements mono-cluster ou aux envs de test et de validation.

     

  2. Mode Fédéré (multi-clusters)

    • Un cluster est désigné comme cluster maître (Primary) et centralise la gestion et les politiques de sécurité.

    • Les autres clusters sont configurés en clusters membres (Managed) et synchronisent leurs événements et règles avec le maître.

    • Ce mode est particulièrement recommandé pour les environnements de production multi-clusters, car il permet :

      • Une administration unifiée des politiques de sécurité.

      • Une visibilité consolidée sur l’ensemble des clusters.

      • Une gestion centralisée des mises à jour et de la conformité.

(Les détails complets du mode fédéré et son déploiement sont présentés au chapitre 7.)


 

Mode Standalone (sans fédération)

  • Déployer un cluster Kubernetes simple avec un node
    • Créer une vm avec 3 vcpu et 5 Go RAM.

    • Lancer les commandes suivantes
sudo su

curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="server" INSTALL_RKE2_VERSION="v1.33.3+rke2r1" sh -

systemctl enable rke2-server.service

systemctl start rke2-server.service

 

    • Verifier le service rke2
systemctl status rke2-server.service

 

 

    • Copier le kubeconfig en local
mkdir -p $HOME/.kube  # en local
cat /etc/rancher/rke2/rke2.yaml  # sur le server
vim $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl config user context local
kubectl get nodes

 

    • Editer avec vscode et chager l'ip 127. avec l'ip de la vm

 

    • Switch sur le context et tester
kubectl config user context < le nom de vote context>
kubectl get nodes

 

 

    • Deploye rancher local provisionner pour avoir une classe de stockage
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.32/deploy/local-path-storage.yaml

 

  • Installation standalone de neuvector
    • Ajouter le repo helm
helm repo add neuvector https://neuvector.github.io/neuvector-helm/
helm repo update
helm search repo neuvector/core

 

    • Fichier values.yaml
      • Les replicas sont mis à 1 parcequ'on a un seul node dans le cluster
# helm repo add neuvector https://neuvector.github.io/neuvector-helm/
# helm search repo neuvector/core
# helm upgrade --install neuvector -n neuvector-system neuvector/core -f ../neuvector/values.yaml --create-namespace
# admin pwd: %UK7M@JZoaUWS5FG

autoGenerateCert: true

defaultValidityPeriod: 365

enforcer:
  enabled: true
  resources:
    limits:
      cpu: 400m
      memory: 2000Mi
    requests:
      cpu: 100m
      memory: 500Mi

controller:
  enabled: true
  replicas: 1
  resources:
    limits:
      cpu: 400m
      memory: 2000Mi
    requests:
      cpu: 100m
      memory: 500Mi
  pvc:
    enabled: false
    existingClaim: false
    accessModes:
      - ReadWriteMany
    storageClass: "local-path"
    capacity: 1Gi

manager: # webui
  enabled: true
  env:
    ssl: true
  svc:
    type: NodePort # should be set to - ClusterIP NodePort LoadBalancer
    nodePort: 32080 # only if svc.type is NodePort

  ingress:
    enabled: false
    host: # MUST be set, if ingress is enabled
    ingressClassName: ""
    path: "/"
    annotations:
      nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
      # kubernetes.io/ingress.class: my-nginx
      # nginx.ingress.kubernetes.io/whitelist-source-range: "1.1.1.1"
      # nginx.ingress.kubernetes.io/rewrite-target: /
    tls: false
    secretName: # my-tls-secret

cve:
  scanner:
    enabled: true
    replicas: 1
    resources:
      limits:
        cpu: 400m
        memory: 3000Mi
      requests:
        cpu: 100m
        memory: 500Mi
    

resources:
  limits:
    cpu: 400m
    memory: 2000Mi
  requests:
    cpu: 100m
    memory: 512Mi

 

    • Installation
helm upgrade --install neuvector -n neuvector-system neuvector/core -f single-replica-values.yaml --create-namespace

 

 

    • Acceder à l'ui de neuvector
      • Recuperer le bootstrap password avec cette commande et  l'url d'accès toujours en https : https://node_ip:32080/ 

      • Login : admin et password: à afficher avec la commande ci-dessous.

kubectl -n neuvector-system get secret neuvector-bootstrap-secret   -o jsonpath='{.data.bootstrapPassword}' | base64 -d; echo

 

 

Commentaires

Connectez-vous pour rejoindre la discussion.

Aucun commentaire pour le moment.