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 para 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
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/
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. Acessar os painéis de controle
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.
Com o Helm
Pode ativar o ServiceMonitor definindo o parâmetro metrics.serviceMonitor.enabled=true da seguinte forma se tiver instalado o Milvus Helm chart.
```
$ helm upgrade my-release milvus/milvus --set metrics.serviceMonitor.enabled=true --reuse-values
```
Quando a instalação estiver concluída, utilize kubectl para verificar o recurso ServiceMonitor.
Com o Milvus Operator
Pode ativar o ServiceMonitor da seguinte forma se tiver instalado o Milvus utilizando o Milvus Operator.
Execute o seguinte comando para editar o recurso personalizado do MIlvus. O comando a seguir assume que o recurso personalizado tem o nome
my-release.$ kubectl edit milvus my-releaseEdite o campo
spec.components.disableMetricparafalse.... spec: components: disableMetric: false # set to true to disable metrics ...Salve e saia do editor.
Aguarde até que o operador reconcilie as alterações. Pode verificar o estado do recurso personalizado Milvus executando o seguinte comando.
$ kubectl get milvus my-release -o yaml
O campo status.components.metrics.serviceMonitor.enabled deve ser true.
3. Verificar as métricas
Depois de ativar o ServiceMonitor, pode aceder ao painel de controlo do Prometheus em http://localhost:9090/.
Clique na guia Status e, em seguida, em Targets. Deverá ver os alvos dos componentes do Milvus.
Alvos do Prometheus
Clique no separador Graph e introduza a expressão up{job="default/my-release"} na caixa de introdução de expressões. Deverá ver as métricas dos componentes do Milvus.
Prometheus_graph
4. Verifique o ServiceMonitor
$ kubectl get servicemonitor
NAME AGE
my-release-milvus 54s
O que vem a seguir
- Se você implantou serviços de monitoramento para o cluster do Milvus, talvez também queira aprender a:
- Se estiver à procura de informações sobre como dimensionar um cluster Milvus:
- Aprender a escalar um cluster Milvus
- Se estiver interessado em atualizar a versão do Milvus,