milvus-logo
LFAI
Home
  • Guía de administración

Despliegue de Servicios de Monitoreo en Kubernetes

Este tema describe cómo utilizar Prometheus para desplegar servicios de monitorización para un clúster Milvus en Kubernetes.

Monitorización de métricas con Prometheus

Las métricas son indicadores que proporcionan información sobre el estado de ejecución de su sistema. Por ejemplo, con las métricas, puede comprender cuánta memoria o recursos de CPU consume un nodo de datos en Milvus. Conocer el rendimiento y el estado de los componentes de su clúster Milvus le permite estar bien informado y, por tanto, tomar mejores decisiones y ajustar la asignación de recursos de forma más oportuna.

Generalmente, las métricas se almacenan en una base de datos de series temporales (TSDB), como Prometheus, y las métricas se registran con una marca de tiempo. En el caso de la supervisión de los servicios de Milvus, puede utilizar Prometheus para extraer datos de los puntos finales establecidos por los exportadores. A continuación, Prometheus exporta las métricas de cada componente de Milvus en http://<component-host>:9091/metrics.

Sin embargo, puede tener varias réplicas para un componente, lo que complica demasiado la configuración manual de Prometheus. Por lo tanto, puede utilizar Prometheus Operator, una extensión de Kubernetes, para una gestión automatizada y eficaz de las instancias de supervisión de Prometheus. El uso de Prometheus Operator le ahorra la molestia de añadir manualmente objetivos de métricas y proveedores de servicios.

La definición personalizada de recursos (CRD) de ServiceMonitor le permite definir de forma declarativa cómo se supervisa un conjunto dinámico de servicios. También permite seleccionar qué servicios supervisar con la configuración deseada mediante selecciones de etiquetas. Con Prometheus Operator, puede introducir convenciones que especifiquen cómo se exponen las métricas. Los nuevos servicios pueden descubrirse automáticamente siguiendo la convención que establezca sin necesidad de reconfiguración manual.

La siguiente imagen ilustra el flujo de trabajo de Prometheus.

Prometheus_architecture Arquitectura_de_Prometeo

Requisitos previos

Este tutorial utiliza kube-prometheus para ahorrarle la molestia de instalar y configurar manualmente cada componente de monitorización y alerta.

Kube-prometheus recopila manifiestos de Kubernetes, paneles de control de Grafana y reglas de Prometheus combinadas con documentación y scripts.

Antes de desplegar los servicios de monitorización, debe crear una pila de monitorización utilizando la configuración del directorio de manifiestos de kube-prometheus.

$ git clone https://github.com/prometheus-operator/kube-prometheus.git
$ cd kube-prometheus
$ kubectl apply --server-side -f manifests/setup
$ kubectl wait \
        --for condition=Established \
        --all CustomResourceDefinition \
        --namespace=monitoring
$ kubectl apply -f manifests/
El clusterrole prometheus-k8s por defecto no puede capturar las métricas de milvus, necesita parchearlo:
kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]'

Para eliminar una pila, ejecute kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup.

Despliegue de servicios de monitorización en Kubernetes

1. Acceda a los cuadros de mando

Reenvíe el servicio Prometheus al puerto 9090, y el servicio Grafana al puerto 3000.

$ kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/prometheus-k8s 9090
$ kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/grafana 3000

2. Habilitar ServiceMonitor

El ServiceMonitor no está habilitado para Milvus Helm de forma predeterminada. Después de instalar el Operador Prometheus en el clúster Kubernetes, puede habilitarlo añadiendo el parámetro metrics.serviceMonitor.enabled=true.

$ helm upgrade my-release milvus/milvus --set metrics.serviceMonitor.enabled=true --reuse-values

Cuando finalice la instalación, utilice kubectl para comprobar el recurso ServiceMonitor.

$ kubectl get servicemonitor
NAME                           AGE
my-release-milvus              54s

A continuación

Traducido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?