작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
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는 특정 CRD(Custom Resource Definition)를 보고 필요한 클러스터 리소스를 생성하거나 업데이트합니다. Prometheus Operator는 Prometheus CRD를 보고 Prometheus 인스턴스(StatefulSet)를 생성합니다.
ServiceMonitor는 Prometheus Operator를 통해 Prometheus가 타겟 서비스를 발견하고, 모니터링할 수 있도록 합니다. 즉, ServiceMonitor CRD는 모니터링 대상 서비스를 정의합니다.
ServiceMonitor CRD 안의 selector는 특정 레이블을 가진 Kubernetes 서비스와 매칭됩니다. 이 CRD는 Prometheus가 어떤 서비스를 모니터링할지 결정하는 데 도움이 됩니다.
Selector 부분의 레이블은 모니터링할 타겟 서비스의 레이블을 지정하는 것입니다. 주어진 레이블 매칭에 따라 Prometheus는 해당 서비스를 발견하고, 모니터링 할 수 있게 됩니다.
Endpoints는 Prometheus가 어느 포트를 통해 해당 서비스의 메트릭 정보를 수집할지 지정합니다.
질문 중 “서비스”라는 표현이 다양한 의미로 사용된 것 같습니다. Prometheus에서 “서비스”는 일반적으로 관찰 가능한 애플리케이션 포인트 또는 해당 라벨과 일치하는 Kubernetes 서비스 리소스를 의미합니다.
ServiceMonitor CRD에서 언급된 서비스들은 Prometheus가 데이터를 수집하기 위해 설정된 서비스이고, 실제 애플리케이션 서비스나 리소스를 의미하는 것은 아닙니다.
위 내용을 바탕으로, ServiceMonitor는 특정한 서비스의 설정과 연결되며, 이 설정을 기반으로 Prometheus가 필요한 데이터를 수집할 수 있는 구조를 제공합니다.
아래 관련 질문 URL을 참고하여 추가적인 정보와 예제를 확인해보시길 바랍니다: “CKS 시험문제 강의 중 첫번째 9번 문제에 대해 질문드립니다.”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.