Despliegue de Cyberwatch en un cluster Kubernetes existente
Esta pagina describe los pasos a seguir para desplegar Cyberwatch en un cluster Kubernetes existente. Este procedimiento supone que el usuario dispone de conocimientos básicos del orquestador Kubernetes y de Helm.
Procedimiento de despliegue
Tener un cluster que cumpla con los requisitos técnicos del software.
Conectarse al repositorio Helm:
helm registry login harbor.cyberwatch.frComplete el nombre de usuario prefijandolo con
cbw$, luego proporcione la contraseña.Estas credenciales son las de su licencia Cyberwatch. Si no las tiene, contacte con support@cyberwatch.com.
Crear y luego editar el archivo de configuración
values.ymlEs necesario conservar el archivo
values.ymlde forma segura. El archivo es necesario para actualizar las imágenes Docker o actualizar el chart Helm.Los pasos presentados a continuación apuntan a crear un archivo de configuración mínimo que permita el despliegue de la aplicación Cyberwatch.
A continuación, un ejemplo de archivo
values.ymlen su configuración 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" webScanner: web_scanner_api_key: "changeme:changeme" key: base: "changeme" credential: "changeme" node: name: cyberwatch-node-name type: singleConfigurar el acceso al registro de contenedores. El par usuario/contraseña es similar al usado para conectarse al repositorio Helm
global: image: registryCredentials: - name: cyberwatch-credentials registry: harbor.cyberwatch.fr/cbw-on-premise username: changeme password: changemeConfigurar el campo
global.storageClasspermite definir el tipo de almacenamiento usado por losVolumeClaimspara conservar los datos persistentesPor defecto, el chart Helm configura la aplicación para que los datos se guarden en la maquina que ejecuta el contenedor usando
VolumeClaimsde tipohostPath. Este comportamiento solo es adecuado si el cluster Kubernetes esta compuesto por un solo nodo. En un cluster Kubernetes de varios nodos, Cyberwatch recomienda usar unStorageClass:global: # storageClass:Listar los
storageClassdisponibles en el cluster:kubectl get scDescomentar el campo
global.storageClassy asignarle como valor el nombre de uno de losstorageClassdisponibles en el cluster.Por ejemplo:
global: storageClass: csi-cinder-classic
Si es necesario, hay mas información disponible en los comentarios del archivo de configuración por defecto del chart Helm.
Configurar el campo
nginx.resolverobtener la IP del resolvedor DNS
kube-dns:kubectl -n kube-system get svc kube-dnsAsignar la dirección IP del resolvedor DNS del cluster Kubernetes al campo
nginx.resolver.Ejemplo:
nginx: resolver: 10.3.0.10
Configurar el ingress
Se pueden configurar uno o varios ingress en el campo
ingress.hosts. Cada ingress debe tener unhostnameúnico y uningressClassName. LasIngressClassdisponibles en el cluster pueden listarse usando el comando siguiente:kubectl get ingressclassesAsignar el valor seleccionado al campo
ingressClassNamey el nombre de dominio que aceptara las solicitudes al campohostname.Ejemplo:
ingress: enabled: true hosts: - hostname: cyberwatch.example.com ingressClassName: nginx tls: enabled: trueLa dirección IP que corresponde al nombre de dominio debe ser la del balanceador de carga del cluster.
Si es necesario, hay mas información disponible en los comentarios del archivo de configuración por defecto del chart Helm.
Desactivar el contenedor
thirdPartiesconfigurando el parámetrothirdParties.enabledenfalse:thirdParties: enabled: falseConfigurar las contraseñas de la aplicación, de la base de datos y de redis
El conjunto de secretos puede generarse con el siguiente comando:
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)" webScanner: web_scanner_api_key: "$(openssl rand -hex 16):$(openssl rand -hex 16)" key: base: "$(openssl rand -hex 64)" credential: "$(openssl rand -hex 64)" EOFConfigurar el nombre que tomara el nodo Cyberwatch en la aplicación con el parámetro
node.namenode: name: cyberwatch-node-name type: singleCrear el namespace cyberwatch en el cluster:
kubectl create namespace cyberwatchGenerar un par de claves SSH y registrarlas como un secreto:
ssh-keygen -q -N '' -f ./id_ed25519 -t ed25519 kubectl -n cyberwatch create secret generic web-scanner-ssh-authorized-keys --from-file=authorized_keys="./id_ed25519.pub" kubectl -n cyberwatch create secret generic ssh-private-key --from-file="./id_ed25519"Desplegar el chart Helm:
helm -n cyberwatch install cyberwatch oci://harbor.cyberwatch.fr/cbw-on-premise/cyberwatch-chart -f values.ymlEl despliegue del chart Helm tomara en cuenta las configuraciones del archivo
values.ymlpara configurar la aplicación.Verificar el estado de los pods:
kubectl -n cyberwatch get podsCuando todos los pods estén en ejecución, conectarse a la interfaz web en HTTPS desde la entrada DNS y registrar el usuario Administrador desde la interfaz web
Acceder a la instancia Cyberwatch mediante la dirección IP devolverá un error 404. Es necesario usar el nombre de dominio definido arriba.
(Opcional) Recuperar el archivo de configuración por defecto del chart Helm
La documentación anterior indica los pasos a seguir para configurar una version mínima de Cyberwatch.
Es posible recuperar el archivo de configuración por defecto del chart Helm de Cyberwatch, para disponer de un archivo completo que indica que valores por defecto son modificables.
El uso de este archivo se recomienda si desea desviarse de la configuración mínima propuesta en esta documentación, por ejemplo para configurar un certificado TLS.
Para recuperar el archivo de configuración por defecto del chart Helm:
helm show values oci://harbor.cyberwatch.fr/cbw-on-premise/cyberwatch-chart > values.yml
Este archivo puede modificarse según sus necesidades y el chart Helm redeplegarse a partir de esta nueva configuración.