메트릭 서버 설치

HPA(자동 스케일링)를 사용하거나 Pod의 리소스 사용량을 모니터링하고 싶으신가요? 그렇다면 먼저 Metrics Server를 설치해야 합니다.
Kubernetes는 기본적으로 Pod의 CPU/메모리 사용량을 추적하지 않습니다. Metrics Server를 설치하면 이 정보를 수집하여 HPA, 대시보드, kubectl top 명령 등에서 사용할 수 있습니다.
Metrics Server란?
Metrics Server는 Kubernetes 클러스터의 리소스 사용량 데이터를 수집하고 제공하는 공식 컴포넌트입니다. 쉽게 말해 "클러스터의 건강 검진 도구"입니다.
주요 기능
Metrics Server가 제공하는 핵심 기능들입니다.
-
노드 리소스 모니터링: 클러스터 내 각 노드의 CPU 및 메모리 사용량을 실시간으로 수집합니다. 노드별 리소스 현황을 파악하여 용량 계획에 활용할 수 있습니다.
-
Pod 리소스 모니터링: 각 Pod의 CPU 및 메모리 사용량을 수집합니다. 어떤 애플리케이션이 리소스를 많이 사용하는지 분석할 수 있습니다.
-
HPA(Horizontal Pod Autoscaler) 지원: Metrics Server가 제공하는 데이터를 기반으로 HPA가 Pod 수를 자동 조정합니다. Metrics Server 없이는 HPA가 작동하지 않습니다.
-
kubectl top 명령어 지원:
kubectl top nodes와kubectl top pods명령어로 터미널에서 직접 리소스 사용량을 확인할 수 있습니다.
- KIOPS 대시보드에서 리소스 사용량 확인이 필요할 때
- HPA(자동 스케일링)를 사용하고 싶을 때
- 리소스 기반 스케줄링이 필요할 때
- 운영 모니터링을 구축하고 싶을 때
사전 요구사항
설치를 시작하기 전에 다음 사항을 확인하세요.
- Kubernetes 클러스터가 KIOPS에 등록되어 있어야 합니다.
- 클러스터 관리자 권한이 필요합니다.
이 기능에 접근할 수 없다면 기관 관리자에게 권한을 요청하세요.
Step 1: 런타임 환경 페이지 이동
먼저 설치할 클러스터를 선택합니다.
- 좌측 메뉴에서 [런타임 환경] 을 클릭합니다.
- Metrics Server를 설치할 Kubernetes 클러스터를 찾습니다.
- 클러스터 이름을 클릭하여 상세 페이지로 이동합니다.
각 클러스터마다 별도로 Metrics Server를 설치해야 합니다.
Step 2: 실시간 모니터링 탭 확인
- 클러스터 상세 페이지에서 실시간 모니터링 탭을 클릭합니다.
- 메트릭 서버 상태를 확인합니다:
- 설치됨: 이미 메트릭 서버가 설치된 상태
- 미설치: 메트릭 서버 설치 필요
미설치 시 표시되는 정보
메트릭 서버가 설치되지 않은 경우:
- 노드/Pod 리소스 사용량이 "N/A"로 표시됩니다.
- 메트릭 서버 설치 버튼이 활성화됩니다.
kubectl top명령 실행 시 오류가 발생합니다.
Step 3: 메트릭 서버 설치
설치 모달은 3단계 Steps UI로 구성되어 있습니다.
- 사전 검증 - 5개 항목 자동 점검
- 설치 - 진행 상태 폴링
- 확인 - 메트릭 수집 검증
3.1 설치 버튼 클릭
- 메트릭 서버 설치 버튼을 클릭합니다.
- 설치 모달이 열리며 사전 검증이 자동으로 시작됩니다.
metrics-server 버전, TLS 검증, 리소스 요청 등의 입력 UI는 제공되지 않습니다. KIOPS가 검증된 기본 설정으로 설치를 진행합니다.
3.2 사전 검증 (5개 항목)
설치를 시작하기 전에 다음 5가지 항목을 자동으로 점검합니다.
- SSH 연결: 클러스터 마스터 노드에 SSH로 접근할 수 있는지 확인합니다.
- Kubernetes 접근: kubectl 명령으로 API 서버에 접근할 수 있는지 확인합니다.
- 클러스터 권한: metrics-server 리소스를 생성할 수 있는 클러스터 권한이 있는지 확인합니다.
- 이미지 레지스트리 접근: metrics-server 컨테이너 이미지를 받을 수 있는지 확인합니다.
- 기존 설치 확인: 이미 metrics-server가 설치되어 있는지 확인합니다.
클러스터 권한 항목이 실패하면 인포 배너에 안내가 표시됩니다. [런타임 환경 > 권한 관리 탭] 으로 이동하여 KIOPS ServiceAccount에 필요한 권한을 부여한 뒤 다시 시도하세요.
3.3 설치 실행 진행 단계
- 설치 시작 버튼을 클릭하면 spinner와 진행 메시지, pollCount(폴링 횟수)가 표시됩니다.
- 백엔드가 다음 리소스를 순차적으로 생성합니다:
kube-system네임스페이스에 배포- ServiceAccount 및 RBAC 생성
- Deployment 생성
- Service 생성
- metrics-server Pod의 상태가 태그 형태로 실시간 표시됩니다 (예:
Pending,ContainerCreating,Running).
3.4 리소스 데이터 수집 확인
Pod가 Running 상태가 되더라도 메트릭이 수집되기까지 시간이 필요합니다.
- KIOPS는 약 10초 간격으로 최대 12회(약 2분) 까지 메트릭 수집 여부를 폴링합니다.
- 폴링 중 메트릭이 수집되면 "메트릭 서버가 설치되었습니다" 메시지가 표시되고 상태가 설치됨으로 변경됩니다.
- 폴링 횟수를 모두 소진해도 메트릭이 들어오지 않으면 "수동 확인하세요" 안내가 표시됩니다. 이 경우 잠시 후 실시간 모니터링 탭을 새로고침하여 확인하세요.
3.5 재설치
이미 설치된 환경에서 문제가 발생한 경우 재설치를 수행할 수 있습니다.
- 실시간 모니터링 탭에서 재설치 버튼을 클릭합니다.
- 기존 설정이 초기화된다는 경고가 표시됩니다.
- 확인 후 동일한 3단계(사전 검증 → 설치 → 확인) 흐름으로 재설치가 진행됩니다.
별도의 "메트릭 서버 삭제" UI는 제공되지 않습니다. 재설치만 가능하며, 완전 제거가 필요하면 클러스터 관리자가 kubectl delete 명령으로 직접 수행해야 합니다.
Step 4: 설치 확인
4.1 KIOPS에서 확인
- 실시간 모니터링 탭에서 노드 리소스 사용량 확인
- 각 노드의 CPU, 메모리 사용률이 표시되는지 확인
- 서비스 운영 화면에서 Pod 리소스 확인
4.2 kubectl로 확인 (선택사항)
클러스터에 직접 접근 가능한 경우:
# 메트릭 서버 Pod 상태 확인
kubectl get pods -n kube-system | grep metrics-server
# 노드 리소스 확인
kubectl top nodes
# Pod 리소스 확인
kubectl top pods --all-namespaces
정상 출력 예시:
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
node-1 250m 12% 1024Mi 25%
node-2 180m 9% 768Mi 19%
설치 후 활용
KIOPS 대시보드에서 확인
메트릭 서버 설치 후 KIOPS에서 확인할 수 있는 정보:
- 노드 탭: 각 노드의 CPU/메모리 사용량
- 서비스 운영: 각 Pod의 리소스 사용량
- 대시보드: 클러스터 전체 리소스 현황
HPA 설정 (자동 스케일링)
메트릭 서버가 설치되면 HPA를 사용할 수 있습니다:
- 서비스 배포 설정에서 HPA 활성화 옵션 선택
- 스케일링 조건 설정:
- 최소/최대 레플리카 수
- CPU 사용률 임계값
문제 해결
설치 실패
- 권한 오류가 발생하는 경우: RBAC 권한이 부족하여 metrics-server 리소스를 생성할 수 없습니다. [런타임 환경 > 권한 관리 탭] 에서 KIOPS ServiceAccount에 클러스터 관리자 권한을 부여하세요.
- 네트워크 오류가 발생하는 경우: metrics-server 이미지를 다운로드할 수 없습니다. 클러스터 노드가 인터넷에 연결되어 있는지, 또는 프라이빗 레지스트리 설정이 올바른지 확인하세요.
- 타임아웃이 발생하는 경우: 클러스터가 응답하지 않습니다. 런타임 환경 페이지에서 클러스터 연결 상태를 확인하고, API 서버가 정상 작동하는지 점검하세요.
설치 후 데이터 없음
- 원인: 메트릭 수집에 시간이 필요합니다 (최대 약 2분, 12회 폴링)
- 확인: metrics-server Pod가 Running 상태인지 확인
- 조치: 폴링이 종료되어 "수동 확인하세요" 메시지가 보이면 잠시 후 새로고침
metrics-server Pod가 CrashLoopBackOff 상태
자체 서명 인증서를 사용하는 환경에서 발생할 수 있습니다:
- KIOPS에서 재설치 버튼을 클릭하여 다시 시도합니다.
- 문제가 지속되면 클러스터 관리자가 마스터 노드에서 metrics-server Deployment에
--kubelet-insecure-tls플래그를 수동으로 추가해야 합니다.
특정 노드만 데이터 없음
- 원인: kubelet 통신 문제
- 확인: 해당 노드의 네트워크 상태 확인
- 조치: 노드 방화벽에서 10250 포트 허용