Inflearn brand logo image

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)

📝 kube-prometheus-stack 구성 및 설치 (💻 실습)

serviceMonitor관련문의드려요

작성

·

32

·

수정됨

0

이 단원 들어오면서 어렵네요.

operator가 prometheus crd를 보고 statefulset prometheus 를 만들어준다고했는데

그럼 serviceMonitor crd를 보고는 operator가 무얼 만들어줍니까?

 

serviceMonitor crd도 있고 prometheus설치하면서 service 리소스 타입도 있던데....이건 servicemonitor리소스와는 또 어떤관계인건지...?

servicemonitor라는 crd

servicemonitor kind타입의 리소스

아래 service들......

[root@k8s-master kube-prometheus-stack]# k get service -n monitoring

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

alertmanager-operated ClusterIP None <none> 9093/TCP,9094/TCP,9094/UDP 18h

monitoring-grafana ClusterIP 10.109.212.0 <none> 80/TCP 18h

monitoring-kube-prometheus-alertmanager ClusterIP 10.106.151.30 <none> 9093/TCP,8080/TCP 18h

monitoring-kube-prometheus-operator ClusterIP 10.105.53.49 <none> 443/TCP 18h

monitoring-kube-prometheus-prometheus ClusterIP 10.105.22.75 <none> 9090/TCP,8080/TCP 18h

monitoring-kube-state-metrics ClusterIP 10.99.143.250 <none> 8080/TCP 18h

monitoring-prometheus-node-exporter ClusterIP 10.101.93.137 <none> 9100/TCP 18h

prometheus-operated ClusterIP None <none> 9090/TCP 18h



그리고 아래 설명에서 말한 service들은 대체 어떤 service들인가요? 실제 서비스할 앱들이 있는 pod를 select하고있는 service 리소스들을 말하나요? 아니면 아래 service라고 칭한건....

promethues 설치하면서 만들어진 serivceMonitor crd를 통해 만들어진 servermonitor 리소스가 있고 또 monitoring 네임스페이스에 있는 service 리소스들이 있는데 무얼 말하는지~~서비스서비스 계속 나오니 누구 어떤 서비스를 의미하는건지 구분이 통~ 안됩니다. ㅠㅠ

 

 

 그리고

serviceMonitor crd안에 잇는
selector:

matchLabels:

app.kubernetes.io/instance: monitoring

app.kubernetes.io/name: prometheus-node-exporter
이 설정을 그대로 monitoring-prometheus-node-exporter 라는 service 리소스에서 사용하는건가요?

 

 

여기 아래 서비스들. 앱이 들어있는 파드 select하는 서비스를 말하는지..

kube-prometheus-stack 설치시 생성되는 service리소스를 말하는지...도통 ㅠㅠ
- endpoints : 매칭될 타겟 Service의 Port 이름

- jobLabel : 타겟 Service의 Label에 key가 jobLabel을 찾아 value 값을 매트릭의 job 라벨로 사용

- selector : 매칭될 타겟 Service의 Label 정보

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. odark님.

쿠버네티스의 Operator와 ServiceMonitor에 대한 혼란스러움을 풀어드리도록 하겠습니다.

Operator와 ServiceMonitor의 역할

  • Operator는 특정 CRD(Custom Resource Definition)를 보고 필요한 클러스터 리소스를 생성하거나 업데이트합니다. Prometheus Operator는 Prometheus CRD를 보고 Prometheus 인스턴스(StatefulSet)를 생성합니다.

  • ServiceMonitor는 Prometheus Operator를 통해 Prometheus가 타겟 서비스를 발견하고, 모니터링할 수 있도록 합니다. 즉, ServiceMonitor CRD는 모니터링 대상 서비스를 정의합니다.

ServiceMonitor와 Service의 관계

  • ServiceMonitor CRD 안의 selector는 특정 레이블을 가진 Kubernetes 서비스와 매칭됩니다. 이 CRD는 Prometheus가 어떤 서비스를 모니터링할지 결정하는 데 도움이 됩니다.

  • Selector 부분의 레이블은 모니터링할 타겟 서비스의 레이블을 지정하는 것입니다. 주어진 레이블 매칭에 따라 Prometheus는 해당 서비스를 발견하고, 모니터링 할 수 있게 됩니다.

  • Endpoints는 Prometheus가 어느 포트를 통해 해당 서비스의 메트릭 정보를 수집할지 지정합니다.

구체적인 서비스 정의

  • 질문 중 “서비스”라는 표현이 다양한 의미로 사용된 것 같습니다. Prometheus에서 “서비스”는 일반적으로 관찰 가능한 애플리케이션 포인트 또는 해당 라벨과 일치하는 Kubernetes 서비스 리소스를 의미합니다.

  • ServiceMonitor CRD에서 언급된 서비스들은 Prometheus가 데이터를 수집하기 위해 설정된 서비스이고, 실제 애플리케이션 서비스나 리소스를 의미하는 것은 아닙니다.

위 내용을 바탕으로, ServiceMonitor는 특정한 서비스의 설정과 연결되며, 이 설정을 기반으로 Prometheus가 필요한 데이터를 수집할 수 있는 구조를 제공합니다.

아래 관련 질문 URL을 참고하여 추가적인 정보와 예제를 확인해보시길 바랍니다: “CKS 시험문제 강의 중 첫번째 9번 문제에 대해 질문드립니다.”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기