파드 리소스 메트릭

Pod가 CPU를 얼마나 쓰고 있는지, 메모리가 한계에 근접했는지 보려면 무엇을 설치해야 할까요? 아무것도 설치하지 않아도 됩니다. KIOPS는 Kubernetes의 kubelet이 이미 내장하고 있는 메트릭을 직접 읽어옵니다. 그래서 클러스터를 등록하는 순간부터 리소스 사용량이 표시됩니다.
설치가 필요 없습니다
이전 버전의 KIOPS는 리소스 메트릭을 수집하기 위해 클러스터에 metrics-server와 cAdvisor DaemonSet을 대신 설치했습니다. 현재는 두 구성요소 모두 필요하지 않으며, 관련 설치·제거 UI도 제공되지 않습니다.
- CPU · 메모리: kubelet의
stats/summary에서 수집합니다. - 네트워크 · 디스크 I/O: kubelet에 내장된 cAdvisor(
metrics/cadvisor)에서 수집합니다. - 두 경로 모두 Kubernetes API 서버 프록시를 통해 조회하므로 클러스터에 추가 워크로드가 배포되지 않습니다.
이 전환으로 사용자 클러스터의 설치·권한·수명주기 부담이 사라졌고, 이전 cAdvisor DaemonSet이 노드의 모든 인터페이스에 8080 포트를 무인증으로 노출하던 문제도 함께 해소되었습니다.
metrics-server · cAdvisor · Prometheus Stack 설치 메뉴는 없습니다
이전에는 실시간 모니터링 탭에 "메트릭 서버 설치"와 "I/O 모니터링 설치"(cAdvisor 또는 Prometheus Stack) 버튼이 있었습니다. 현재는 두 버튼 모두 없어졌으며, KIOPS는 어떤 모니터링 스택도 클러스터에 대신 설치하지 않습니다.
- Prometheus·Grafana를 별도 용도로 운영하려는 경우: 클러스터 관리자가 직접 설치해 사용하세요. KIOPS 화면의 메트릭 표시는 이와 무관하게 동작합니다.
- HPA를 쓰려는 경우: metrics-server가 필요합니다(아래 HPA를 사용하려면 참고).
메트릭 확인 위치
리소스 사용량은 다음 세 곳에서 확인합니다.
- [런타임 환경] > 클러스터 상세 > 실시간 모니터링 탭: 노드별·파드별 CPU/메모리와 네트워크·디스크 I/O를 실시간으로 표시합니다.
- 서비스 운영 관리 > 파드 목록 탭: 해당 서비스에 속한 파드의 CPU/메모리 사용량을 표시합니다.
- [대시보드]: 클러스터 전체 리소스 현황을 요약합니다.
값이 갱신되기까지 수집 주기만큼 지연이 있을 수 있으며, 네트워크·디스크는 누적 카운터의 증분으로 계산되므로 첫 조회 직후에는 값이 비어 있을 수 있습니다. 잠시 후 다시 확인하세요.
사전 요구사항
별도 설치는 없지만, KIOPS가 kubelet 메트릭을 읽으려면 다음 조건이 충족되어야 합니다.
nodes/proxy권한: KIOPS가 사용하는 kubeconfig(또는 ServiceAccount)에nodes/proxy리소스 접근 권한이 있어야 합니다. 노드의 기본 관리자 kubeconfig와 외부 클러스터 등록 시 입력하는 admin kubeconfig는 이 권한을 이미 포함합니다.- kubelet 포트 10250: 각 노드의 kubelet이 API 서버에서 접근 가능해야 합니다. 노드 방화벽에서 10250 포트가 차단되면 해당 노드의 메트릭만 비어 있게 됩니다.
- 클러스터가 KIOPS에 등록되어 있어야 합니다.
HPA를 사용하려면 metrics-server가 별도로 필요합니다
KIOPS 화면의 리소스 표시는 kubelet에서 직접 읽으므로 설치가 필요 없지만, HPA(자동 스케일링)는 Kubernetes HPA 컨트롤러가 metrics.k8s.io API를 조회하는 구조입니다. 이 API는 클러스터에 metrics-server가 설치되어 있어야만 제공됩니다.
KIOPS는 더 이상 metrics-server를 대신 설치하지 않으므로, HPA를 사용하려면 클러스터 관리자가 직접 설치해야 합니다.
클러스터에 직접 접근할 수 있다면 다음으로 설치 여부를 확인합니다.
# metrics.k8s.io API 제공 여부 확인
kubectl top nodes
error: Metrics API not available 이 출력되면 metrics-server가 없는 상태입니다. Kubernetes 공식 배포본을 클러스터에 적용한 뒤 HPA를 설정하세요. 자체 서명 인증서를 쓰는 환경에서는 metrics-server Deployment에 --kubelet-insecure-tls 플래그가 필요할 수 있습니다.
HPA 설정 방법은 HPA 자동 스케일링을 참고하세요.
문제 해결
리소스 사용량이 전부 비어 있습니다
- 권한 부족: KIOPS kubeconfig에
nodes/proxy권한이 없으면 모든 노드의 조회가 실패합니다. [런타임 환경 > 권한 관리] 탭에서 KIOPS ServiceAccount의 권한을 확인하세요. - 클러스터 연결 이상: [런타임 환경] 페이지에서 클러스터 연결 상태를 먼저 확인하세요. API 서버에 도달하지 못하면 메트릭도 조회되지 않습니다.
특정 노드만 값이 없습니다
해당 노드의 kubelet에 도달하지 못하는 경우입니다. 노드 방화벽에서 10250 포트를 허용하고, 노드가 Ready 상태인지 확인하세요.
네트워크·디스크만 표시되지 않습니다
네트워크·디스크는 CPU/메모리와 다른 엔드포인트(metrics/cadvisor)에서 수집됩니다. CPU/메모리는 보이는데 네트워크·디스크만 비어 있다면 해당 노드의 kubelet이 cAdvisor 메트릭을 노출하지 않는 구성일 수 있습니다.
자주 하는 실수
- metrics-server를 설치하면 KIOPS 화면이 더 정확해질 것으로 기대: 화면 표시 경로는 kubelet 직접 조회로 고정되어 있어 달라지지 않습니다. metrics-server는 HPA를 위해서만 설치하세요.
- 이전 버전에서 KIOPS가 설치한 cAdvisor DaemonSet을 그대로 두는 것:
kiwi-monitoring네임스페이스의 cAdvisor DaemonSet은 더 이상 사용되지 않습니다.hostNetwork로 노드의8080포트를 무인증 노출하므로 제거를 권장합니다.
관련 가이드
- 런타임 환경 - Kubernetes 클러스터 등록
- HPA 자동 스케일링 - 자동 스케일링 설정
- 로그 모니터링 - 컨테이너 로그 확인
- 컨테이너 관리 - Pod 재시작 및 스케일링