Desplegament de Cyberwatch en un clúster Kubernetes existent

Aquesta pàgina descriu els passos que cal seguir per desplegar Cyberwatch en un clúster Kubernetes existent. Aquest procediment pressuposa que l’usuari té uns coneixements bàsics de l’orquestrador Kubernetes i de Helm.

Procediment de desplegament

  1. Disposeu d’un clúster que compleixi els requisits tècnics del programari.

  2. Connecteu-vos al repositori de Helm:

    helm registry login harbor.cyberwatch.fr
    

    Completeu el nom d’usuari afegint-hi el prefix cbw$ i, després, introduïu la contrasenya.

    Aquestes credencials són les de la vostra llicència de Cyberwatch; si no en disposeu, poseu-vos en contacte amb support@cyberwatch.com.

  3. Creeu i, després, editeu el fitxer de configuració values.yml

    Cal conservar el fitxer values.yml de manera segura. El fitxer és necessari per actualitzar les imatges Docker o per actualitzar el chart de Helm.

    Els passos següents serveixen per crear un fitxer de configuració mínim que permet desplegar l’aplicació Cyberwatch.

    Aquest és un exemple de fitxer values.yml en la seva configuració mínima:

    global:
      # storageClass:
    
      image:
        registryCredentials:
          - name: cyberwatch-credentials
            registry: harbor.cyberwatch.fr/cbw-on-premise
            username: changeme
            password: changeme
    
    nginx:
      resolver: changeme
    
    ingress:
      enabled: true
      hosts:
        - hostname: cyberwatch.example.com
          ingressClassName: nginx
          tls:
            enabled: true
    
    thirdParties:
      enabled: false
    
    database:
      password: "changeme"
      root_password: "changeme"
    
    redis:
      password: "changeme"
    
    containerScanner:
      container_scanner_api_key: "changeme:changeme"
    
    key:
      base: "changeme"
      credential: "changeme"
    
    node:
      name: cyberwatch-node-name
      type: single
    
  4. Configureu l’accés al registre dels contenidors. El nom d’usuari i la contrasenya són els mateixos que els que s’utilitzen per connectar-se al repositori de Helm

    global:
      image:
        registryCredentials:
          - name: cyberwatch-credentials
            registry: harbor.cyberwatch.fr/cbw-on-premise
            username: changeme
            password: changeme
    
  5. Configureu el camp global.storageClass, que permet definir el tipus d’emmagatzematge que utilitzen els VolumeClaims per conservar les dades persistents

    Per defecte, el chart de Helm configura l’aplicació perquè les dades es desin a la màquina que executa el contenidor, mitjançant VolumeClaims de tipus hostPath. Aquest comportament només és adequat si el clúster Kubernetes té un sol node. En un clúster Kubernetes de diversos nodes, Cyberwatch recomana utilitzar una StorageClass:

    global:
      # storageClass:
    
    1. Llisteu les storageClass disponibles al clúster:

      kubectl get sc
      
    2. Traieu el comentari del camp global.storageClass i assigneu-li com a valor el nom d’una de les storageClass disponibles al clúster.

      Per exemple:

      global:
        storageClass: csi-cinder-classic
      

    Si cal, trobareu més informació als comentaris del fitxer de configuració per defecte del chart de Helm.

  6. Configureu el camp nginx.resolver

    1. Obteniu l’adreça IP del resolutor DNS kube-dns:

      kubectl -n kube-system get svc kube-dns
      
    2. Assigneu l’adreça IP del resolutor DNS del clúster Kubernetes al camp nginx.resolver.

      Exemple:

      nginx:
        resolver: 10.3.0.10
      
  7. Configureu l’ingress

    1. Podeu configurar un o diversos ingress al camp ingress.hosts. Cada ingress ha de tenir un hostname únic i un ingressClassName. Podeu llistar les IngressClass disponibles al clúster amb l’ordre següent:

      kubectl get ingressclasses
      
    2. Assigneu el valor seleccionat al camp ingressClassName i el nom de domini que acceptarà les sol·licituds al camp hostname.

      Exemple:

      ingress:
        enabled: true
        hosts:
          - hostname: cyberwatch.example.com
            ingressClassName: nginx
            tls:
            enabled: true
      

      L’adreça IP que correspon al nom de domini ha de ser la de l’equilibrador de càrrega del clúster.

    Si cal, trobareu més informació als comentaris del fitxer de configuració per defecte del chart de Helm.

  8. Desactiveu el contenidor thirdParties establint el paràmetre thirdParties.enabled a false:

    thirdParties:
      enabled: false
    
  9. Configureu les contrasenyes de l’aplicació, de la base de dades i de redis

    Podeu generar tots els secrets amb l’ordre següent:

    cat <<-EOF
    database:
      password: "$(openssl rand -hex 16)"
      root_password: "$(openssl rand -hex 16)"
    
    redis:
      password: "$(openssl rand -hex 16)"
    
    containerScanner:
      container_scanner_api_key: "$(openssl rand -hex 16):$(openssl rand -hex 16)"
    
    kibana:
      kibana_password: "$(openssl rand -hex 16)"
    
    key:
      base: "$(openssl rand -hex 64)"
      credential: "$(openssl rand -hex 64)"
    EOF
    
  10. Configureu el nom que tindrà el node de Cyberwatch a l’aplicació amb el paràmetre node.name

    node:
      name: cyberwatch-node-name
      type: single
    
  11. Creeu l’espai de noms cyberwatch al clúster:

     kubectl create namespace cyberwatch
    
  12. Desplegueu el chart de Helm:

    helm -n cyberwatch install cyberwatch oci://harbor.cyberwatch.fr/cbw-on-premise/cyberwatch-chart -f values.yml
    

    El desplegament del chart de Helm té en compte la configuració del fitxer values.yml per configurar l’aplicació.

  13. Comproveu l’estat dels pods:

    kubectl -n cyberwatch get pods
    
  14. Quan tots els pods estiguin en execució, accediu a la interfície web en HTTPS des de l’entrada DNS i registreu l’usuari administrador des de la interfície web

Si accediu a la instància de Cyberwatch per l’adreça IP, obtindreu un error 404. Cal utilitzar el nom de domini definit anteriorment.

(Opcional) Obtenir el fitxer de configuració per defecte del chart de Helm

La documentació anterior indica els passos que cal seguir per crear una configuració mínima de Cyberwatch.

Podeu obtenir el fitxer de configuració per defecte del chart de Helm de Cyberwatch per disposar d’un fitxer complet que indica quins valors per defecte es poden modificar.

Es recomana utilitzar aquest fitxer si voleu apartar-vos de la configuració mínima que proposa aquesta documentació, per exemple per configurar un certificat TLS.

Per obtenir el fitxer de configuració per defecte del chart de Helm:

helm show values oci://harbor.cyberwatch.fr/cbw-on-premise/cyberwatch-chart > values.yml

Després, podeu modificar aquest fitxer segons les vostres necessitats i tornar a desplegar el chart de Helm a partir d’aquesta configuració nova.