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.
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/
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
- Si ha desplegado servicios de monitoreo para el cluster Milvus, puede que también quiera aprender a:
- Si busca información sobre cómo escalar un clúster Milvus:
- Aprender a escalar un clúster Milvus
- Si está interesado en actualizar la versión de Milvus,