쿠버네티스에 모니터링 서비스 배포하기
이 항목에서는 Prometheus를 사용하여 Kubernetes의 Milvus 클러스터에 대한 모니터링 서비스를 배포하는 방법에 대해 설명합니다.
Prometheus로 메트릭 모니터링
메트릭은 시스템의 실행 상태에 대한 정보를 제공하는 지표입니다. 예를 들어, 메트릭을 사용하면 Milvus의 데이터 노드가 얼마나 많은 메모리 또는 CPU 리소스를 소비하는지 파악할 수 있습니다. Milvus 클러스터에 있는 구성 요소의 성능과 상태를 파악하면 정보를 잘 파악할 수 있으므로 더 나은 의사 결정을 내리고 더 적시에 리소스 할당을 조정할 수 있습니다.
일반적으로 메트릭은 Prometheus와 같은 시계열 데이터베이스(TSDB)에 저장되며, 메트릭은 타임스탬프와 함께 기록됩니다. Milvus 서비스를 모니터링하는 경우, 내보내기가 설정한 엔드포인트에서 데이터를 가져오는 데 Prometheus를 사용할 수 있습니다. 그런 다음 Prometheus는 각 Milvus 구성 요소의 메트릭을 http://<component-host>:9091/metrics
으로 내보냅니다.
그러나 하나의 컴포넌트에 대해 여러 개의 복제본이 있을 수 있으며, 이로 인해 Prometheus의 수동 구성이 너무 복잡해질 수 있습니다. 따라서 Prometheus 모니터링 인스턴스를 자동화하고 효과적으로 관리하기 위해 Kubernetes의 확장인 Prometheus Operator를 사용할 수 있습니다. Prometheus Operator를 사용하면 메트릭 대상과 서비스 공급자를 수동으로 추가하는 수고를 덜 수 있습니다.
ServiceMonitor 사용자 정의 리소스 정의(CRD)를 사용하면 동적 서비스 집합을 모니터링하는 방법을 선언적으로 정의할 수 있습니다. 또한 레이블 선택을 사용하여 원하는 구성으로 모니터링할 서비스를 선택할 수 있습니다. Prometheus Operator를 사용하면 메트릭이 노출되는 방식을 지정하는 규칙을 도입할 수 있습니다. 수동으로 재구성할 필요 없이 설정한 규칙에 따라 새로운 서비스를 자동으로 검색할 수 있습니다.
다음 이미지는 Prometheus 워크플로우를 보여줍니다.
Prometheus_architecture
전제 조건
이 튜토리얼에서는 각 모니터링 및 알림 구성 요소를 설치하고 수동으로 구성하는 수고를 덜어주기 위해 kube-prometheus를 사용합니다.
Kube-prometheus는 문서 및 스크립트와 함께 Kubernetes 매니페스트, Grafana 대시보드, Prometheus 규칙을 수집합니다.
모니터링 서비스를 배포하기 전에, 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"]}}]'
스택을 삭제하려면 kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup
을 실행한다.
쿠버네티스에 모니터링 서비스 배포하기
1. 대시보드에 액세스합니다.
Prometheus 서비스를 포트 9090
로, Grafana 서비스를 포트 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. ServiceMonitor 활성화
서비스 모니터는 기본적으로 밀버스 헬름에 대해 활성화되어 있지 않습니다. 쿠버네티스 클러스터에 프로메테우스 오퍼레이터를 설치한 후, 파라미터 metrics.serviceMonitor.enabled=true
를 추가하여 활성화할 수 있다.
$ helm upgrade my-release milvus/milvus --set metrics.serviceMonitor.enabled=true --reuse-values
설치가 완료되면 kubectl
를 사용하여 ServiceMonitor 리소스를 확인합니다.
$ kubectl get servicemonitor
NAME AGE
my-release-milvus 54s
다음 단계
- Milvus 클러스터에 대한 모니터링 서비스를 배포한 경우 다음 방법을 배울 수도 있습니다:
- Milvus 클러스터를 확장하는 방법에 대한 정보를 찾고 계신다면 이 도움말을 참조하세요:
- Milvus 클러스터 확장 알아보기
- Milvus 버전 업그레이드에 관심이 있으신 경우,