milvus-logo
LFAI
Home
  • Guia de Administração

Implantação de serviços de monitoramento no Kubernetes

Este tópico descreve como usar o Prometheus para implantar serviços de monitoramento para um cluster do Milvus no Kubernetes.

Monitorar métricas com o Prometheus

As métricas são indicadores que fornecem informações sobre o status de execução do seu sistema. Por exemplo, com as métricas, é possível entender a quantidade de memória ou recursos de CPU consumidos por um nó de dados no Milvus. Conhecer o desempenho e o estado dos componentes do seu cluster Milvus permite-lhe estar bem informado e, consequentemente, tomar melhores decisões e ajustar a atribuição de recursos de forma mais atempada.

Geralmente, as métricas são armazenadas numa base de dados de séries temporais (TSDB), como o Prometheus, e as métricas são registadas com um carimbo de data/hora. No caso da monitorização dos serviços Milvus, pode utilizar o Prometheus para extrair dados dos pontos de extremidade definidos pelos exportadores. Em seguida, o Prometheus exporta as métricas de cada componente do Milvus em http://<component-host>:9091/metrics.

No entanto, poderá ter várias réplicas de um componente, o que torna a configuração manual do Prometheus demasiado complicada. Portanto, é possível usar o Prometheus Operator, uma extensão do Kubernetes, para o gerenciamento automatizado e eficaz das instâncias de monitoramento do Prometheus. O uso do Prometheus Operator poupa o trabalho de adicionar manualmente alvos de métricas e provedores de serviços.

O ServiceMonitor Custom Resource Definition (CRD) permite definir declarativamente como um conjunto dinâmico de serviços é monitorado. Ele também permite selecionar quais serviços devem ser monitorados com a configuração desejada usando seleções de rótulos. Com o Prometheus Operator, é possível introduzir convenções que especificam como as métricas são expostas. Novos serviços podem ser descobertos automaticamente seguindo a convenção definida, sem a necessidade de reconfiguração manual.

A imagem a seguir ilustra o fluxo de trabalho do Prometheus.

Prometheus_architecture Prometheus_architecture

Pré-requisitos

Este tutorial usa o kube-prometheus para evitar o trabalho de instalar e configurar manualmente cada componente de monitoramento e alerta.

O Kube-prometheus coleta manifestos do Kubernetes, painéis do Grafana e regras do Prometheus combinados com documentação e scripts.

Antes de implantar os serviços de monitoramento, é necessário criar uma pilha de monitoramento usando a configuração no diretório de manifestos do 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/
O clusterrole padrão prometheus-k8s não pode capturar as métricas do milvus, é necessário corrigir:
kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]'

Para excluir uma pilha, execute kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup.

Implantar serviços de monitoramento no Kubernetes

1. Aceder aos dashboards

Encaminhe o serviço Prometheus para a porta 9090, e o serviço Grafana para a porta 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 o ServiceMonitor

O ServiceMonitor não está habilitado para o Milvus Helm por padrão. Depois de instalar o Operador do Prometheus no cluster do Kubernetes, você pode habilitá-lo adicionando o parâmetro metrics.serviceMonitor.enabled=true.

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

Quando a instalação for concluída, use kubectl para verificar o recurso ServiceMonitor.

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

O que vem a seguir

Traduzido porDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?