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
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. 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
- 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,