Esta documentación te guía a través del proceso de instalación de CloudPrem en cualquier clúster de Kubernetes utilizando PostgreSQL para el almacenamiento de metadatos y MinIO para el almacenamiento de objetos compatible con S3.
Esta configuración es ideal para entornos en los que gestionas tu propia infraestructura o no utilizas los servicios gestionados de un proveedor de nube importante.
Requisitos previos
Antes de empezar, confirma que tienes:
kubectl instalado y configurado para acceder a tu clúster de Kubernetes
kubectl version --client
Helm 3.x instalado
helm version
Un clúster de Kubernetes (v1.25 o posterior) en funcionamiento
kubectl get nodes
Una cuenta de Datadog con la función de CloudPrem activada
kubectl run minio-client \
--rm -it \
--image=minio/mc:latest \
--command -- bash -c "mc alias set myminio <MINIO_ENDPOINT> <ACCESS_KEY> <SECRET_KEY> && mc ls myminio/<BUCKET_NAME>"
Si tienes éxito, el comando muestra el contenido de tu bucket de MinIO.
Crea un espacio de nombres de Kubernetes para el chart:
kubectl create namespace <NAMESPACE_NAME>
Por ejemplo, para crear un espacio de nombres cloudprem:
kubectl create namespace cloudprem
Nota: Puedes establecer un espacio de nombres predeterminado para tu contexto actual para evitar tener que escribir -n <NAMESPACE_NAME> con cada comando:
Crea un archivo datadog-values.yaml para sustituir los valores predeterminados por tu configuración personalizada. Aquí es donde se definen los ajustes específicos del entorno, como la cuenta de servicio, la configuración de entrada, las solicitudes y los límites de recursos, etc.
Cualquier parámetro que no se haya sobrescrito explícitamente en datadog-values.yaml vuelve a los valores por defecto definidos en el values.yaml del chart.
# Show default valueshelm show values datadog/cloudprem
El siguiente es un ejemplo de archivo datadog-values.yaml con anulaciones para una configuración de Kubernetes estándar con MinIO:
datadog-values.yaml
# Configuración de Datadogdatadog:# El sitio de Datadog (https://docs.datadoghq.com/getting_started/site/) al que conectarte. Por defecto es `datadoghq.com`.# site: datadoghq.com# El nombre del secreto existente que contiene la clave de API de Datadog. El nombre de la clave secreta debe ser `api-key`.apiKeyExistingSecret:datadog-secret# Variables de entorno# Las credenciales de MinIO se montan desde el secreto de Kubernetes.# Cualquier variable de entorno definida aquí estará disponible para todos los pods del despliegue.environment:AWS_REGION:us-east-1# Configuración de la cuenta de servicioserviceAccount:create:truename:cloudprem# Configuración del nodo de CloudPremconfig:# The root URI where index data is stored. This should be an S3-compatible path pointing to your MinIO bucket.# Todos los índices creados en CloudPrem se almacenan en esta ubicación.default_index_root_uri:s3://<BUCKET_NAME>/indexesstorage:s3:endpoint:<MINIO_ENDPOINT># force_path_style_access must be true for MinIO.force_path_style_access:true# Configuración de metastore# El metastore se encarga de almacenar y gestionar los metadatos de los índices.# Requiere una cadena de conexión de base de datos de PostgreSQL proporcionada por un secreto de Kubernetes.# El secreto debe contener una clave llamada `QW_METASTORE_URI` con un valor en el formato:# postgresql://<username>:<password>@<host>:<port>/<database>## La cadena de conexión de metastore se monta en los pods utilizando extraEnvFrom para hacer referencia al secreto.metastore:extraEnvFrom:- secretRef:name:cloudprem-metastore-uri- secretRef:name:cloudprem-minio-credentials# Configuración del indexador# El indexador se encarga de procesar e indexar los datos entrantes que recibe de diversas fuentes# (por ejemplo, Datadog Agents, recopiladores de logs) y lo transforma en archivos de búsqueda llamados "splits".# almacenados en MinIO.## El indexador es escalable horizontalmente: puedes aumentar `replicaCount` para gestionar un mayor rendimiento de indexación.# El parámetro `podSize` establece automáticamente los ajustes específicos de vCPU, memoria y componentes.# Consulta la guía de dimensionamiento para conocer los niveles disponibles y sus configuraciones.indexer:replicaCount:2podSize:xlargeextraEnvFrom:- secretRef:name:cloudprem-minio-credentials# Configuración del buscador# El buscador es responsable de ejecutar las consultas de búsqueda contra los datos indexados almacenados en MinIO.# Gestiona las solicitudes de búsqueda del servicio de consulta de Datadog y devuelve los resultados coincidentes.## El buscador es escalable horizontalmente; puedes aumentar `replicaCount` para manejar búsquedas más concurrentes.# Las necesidades de recursos de los buscadores dependen en gran medida de la carga de trabajo y deben determinarse empíricamente.# Entre los factores clave que influyen en el rendimiento de las búsquedas se encuentran:# - Complejidad de la consulta (por ejemplo, número de términos, uso de comodines o expresiones regulares)# - Concurrencia de consultas (número de búsquedas simultáneas)# - Cantidad de datos escaneados por consulta# - Patrones de acceso a los datos (tasa de aciertos de la caché)## La memoria es especialmente importante para los buscadores, ya que almacenan en memoria los datos de índice a los que acceden con frecuencia.searcher:replicaCount:2podSize:xlargeextraEnvFrom:- secretRef:name:cloudprem-minio-credentials# Configuración del plano de controlcontrolPlane:extraEnvFrom:- secretRef:name:cloudprem-minio-credentials# Configuración de Janitorjanitor:extraEnvFrom:- secretRef:name:cloudprem-minio-credentials
Sustituye los siguientes parámetros por tus valores reales:
<BUCKET_NAME>: el nombre de tu bucket de MinIO (por ejemplo, cloudprem)
<MINIO_ENDPOINT>: la URL del endpoint de MinIO (por ejemplo, http://minio.minio.svc.cluster.local:9000)