작성
·
15
0
Prometheus와 같은 서버역할을 하는 컴포넌트들은 사전에 이미 worker노드IP를 이미 알고 있는 상태라서
DaemonSet에 설정된 containerPort 를 보고 각 노드별로 설치된 Pod를 호출해서 CPU와 메모리 데이터를 수집하는것이다.
라고 하셨느데요
서버역할을 한다고 표현하신게 무슨 의미인지 궁금합니다.
그리고 Promethues가 저렇게 리소스 정보를 수집하기위해 별도로 저런 DaemonSet yml형태로 DaemonSet을 생성해야 하나요? 아니면 promethues 설치 패키지 안에 그런 Daemonset리소스(hostNework:true)를 생성하는게 포함되어있는건가요?
답변 2
0
AI 인턴이 잘 설명해준 것 같네요. 각각의 노드에 설치된 Agent 들이 있고, 서버 역할을 하는 프로메테우스는 각각의 Agent에 접근해 데이터를 수집합니다. 그래서 이렇게 중앙 처리를 하는 컴포넌트를 서버 역할이라고 표현 드린 거예요. 그걸 서버역할이라고 말한건데 듣는 사람에 따라 다르게 생각할 수가 있겠습니다.
그리고 배포는 최종적으로 쿠버네티스엔 DaemonSet가 생성됩니다. 근데 이건 노드의 정보를 수집하는 Node Agent의 경우가 그렇고, kube-apiserver나 etcd 등 꼭 노드마다 Pod가 배포될 필요가 없을 경우에는 Deployment 형태로도 배포되고요.
배포는 Helm 패키지를 통해 배포가 되는데, 이곳을 보시면 명시적으로 DaemonSet yaml 파일은 없고, 강의를 들으셨으면 아시겠지만, Operator가 만들어줘요. 그리고 그 Operator는 아래 파일을 보고 만듭니다.
0
안녕하세요, 인프런 AI 인턴입니다. odark님께서 질문해주신 내용에 대해 답변드립니다.
Prometheus
와 같은 모니터링 솔루션이 “서버 역할”을 한다고 할 때, 이는 이러한 서비스를 통해 다양한 데이터(예: CPU 사용량, 메모리 사용량 등)를 수집하고 이를 통합하여 제공하는 중추적 역할을 한다는 의미입니다. 즉, Prometheus
는 네트워크 상의 여러 노드로부터 메트릭 데이터를 수집하고 이를 분석하여 사용자가 모니터링 데이터를 쉽게 접근할 수 있도록 해줍니다.
Prometheus
Prometheus
는 일반적으로 각 노드에서 메트릭 데이터를 수집하기 위해 DaemonSet을 사용하는 node exporter
를 함께 사용합니다. node exporter
는 각 노드의 자원 사용 데이터를 수집하여 Prometheus
서버에 전달합니다. DaemonSet
은 클러스터 내의 모든 노드에 파드를 배포하여 이러한 데이터를 수집하기 적합합니다.
별도의 DaemonSet YML: 보통 Prometheus 설치 시, node exporter
를 배포하기 위한 DaemonSet 설정 파일이 함께 제공됩니다. 사용자는 이러한 YAML 파일을 통해 직접 클러스터에 배포합니다.
설치 패키지 포함 여부: Prometheus를 설치할 때 사용하는 Helm 차트나 Kustomize 설정에는 이러한 DaemonSet이 포함되어 있는 경우가 많습니다. 따라서 사용자는 추가적으로 DaemonSet을 작성하지 않아도 되는 경우가 있습니다.
hostNetwork: true
옵션은 각 노드의 네트워크 설정을 사용하도록 하여, 노드와 가까운 레벨에서 데이터를 수집하는데 유용합니다.
쿠버네티스 및 Prometheus에 대한 보다 구체적인 설정 방법에 대해서는 “Prometheus 설정 및 관리에 관한 참고자료”에서 확인할 수 있으며, 이 링크에서 관련 변수를 설정하는 방법에 대한 지식을 넓히실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.