해결된 질문
작성
·
234
·
수정됨
1
강사님 안녕하세요 궁금한 부분이 있어서 질문 드립니다.
Logging 챕터에 cAdvisor에 대한 설명과 프로메테우스등의 솔루션 내용이 나오는데요
Daemonset을 통해서 프로메테우스 파드들이 각 노드에 설치되는 것을 확인했습니다.
그런데 matrics server를 설치하면
각 노드의 kubelet이 matrics 정보를 API 서버로 주기 때문에 master 노드에서도
kubectl top 명령으로 성능 정보를 확인할 수가 있다고 본거 같은데요
그러면 Daemonset으로 모든 노드들에 파드들을 배포할 필요 없이
master 노드에서만 Agent를 설치하여 모든 노드들의 성능정보를 수집하는 것이 가능할까요?
왜 데몬셋을 통해 모든 노드에 Agent를 배포해야 하는지 궁금합니다.
또 프로메테우스에서 데몬셋으로 노드별로 파드를 배포하는데
노드의 matrics 정보가 아닌 클러스터 구성정보(노드 수, 네임스페이스, 파드 수)는 API Server를 통해서 수집을 하게 되는건가요?
그럼 노드마다 배포된 파드에서 API Server를 통해 정보를 수집하게 되면
(1번노드에서 수집, 2번노드에서 수집) 구성정보는 중복 수집이 될텐데
API Server로부터 구성정보를 수집하는 파드가 별도로 있을까요?
답변 2
1
안녕하세요.
쿠버네티스 matrics server 서버는 기본적인 CPU 정보만 수집되고 확인 할 수 있습니다.
프로메테우스를 설치하면 더 다양한 매트릭 정보들을 수집 할 수 있고요.
또 그 다양한 매트릭 정보를 수집하기 위해 여러 형태의 Agent들이 설치되야 합니다.
예를 들어 프로메테우스의 node exporter라는 Agent는 각 워커노드마다 DeamonSet으로 설치되서 각 워커노드의 네트워크, 스토리지, 성능 등등 많은 유용한 매트릭 정보들을 알 수 있게 해줍니다.
실무에서는 단순히 CPU정보만 보지 않기 때문에 다른 정보들이 필요하고, 그래서 matrics server만으로는 부족하다고 볼 수 있고요.
프로메테우스에서 API Server로 부터 수집하는 Agents는 kube-state-metrics 라고 해서 Deployment형태로 하나만 설치됩니다.
올려주신 제 강의 캡쳐 화면에서는 로그와 함께 복잡적으로 설명하기 위해 단순화된 그림이고, 프로메테우스만 전체적인 그림은 아닙니다.
0
추가 질문입니다. 인증 및 권한 챕터에서 https로 API Server로부터 파드정보 노드정보 가져오는 부분이 있는데 matrics server를 설치한다면 https를 통해 노드의 matrics 정보를 수집하는 게 가능할까요?
답변 정말 감사합니다.
이해에 많은 도움이 되었습니다.
답변내용중에 하나 또 궁금한게 있는데
cadvisor는 kubelet 바이너리의 일부라고 알고 있고
k8s에 기본적으로 제공되는 도구로 알고 있는데
컨테이너런타임에서 cadvisor에 제공하는 데이타는 cpu, mem 데이터 뿐이고
답변에서 말씀하신 네트워크, 스토리지, 성능 등 많은 유용한 메트릭 정보는
프로메테우스를 설치해야만 알 수 있다라고 이해하면 될까요?
k8s에서 API 서버에 접근하기 위해 공식적으로 제공해주는 클라이언트 라이브러리가 있는데
라이브러리 가이드에 매트릭 정보 수집을 위한 API도 존재를 합니다.
그럼 그 API를 호출하고 정상적인 데이터 수집을 위해서는
해당 k8s 클러스터에 프로메테우스가 설치되어 있어야 할까요?