본문으로 건너뛰기

메트릭 서버 설치

런타임 환경 - 실시간 모니터링 탭

HPA(자동 스케일링)를 사용하거나 Pod의 리소스 사용량을 모니터링하고 싶으신가요? 그렇다면 먼저 Metrics Server를 설치해야 합니다.

왜 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 nodeskubectl top pods 명령어로 터미널에서 직접 리소스 사용량을 확인할 수 있습니다.

Metrics Server가 필요한 경우
  • KIOPS 대시보드에서 리소스 사용량 확인이 필요할 때
  • HPA(자동 스케일링)를 사용하고 싶을 때
  • 리소스 기반 스케줄링이 필요할 때
  • 운영 모니터링을 구축하고 싶을 때

사전 요구사항

설치를 시작하기 전에 다음 사항을 확인하세요.

  • Kubernetes 클러스터가 KIOPS에 등록되어 있어야 합니다.
  • 클러스터 관리자 권한이 필요합니다.
권한 안내

이 기능에 접근할 수 없다면 기관 관리자에게 권한을 요청하세요.


Step 1: 런타임 환경 페이지 이동

먼저 설치할 클러스터를 선택합니다.

  1. 좌측 메뉴에서 [런타임 환경] 을 클릭합니다.
  2. Metrics Server를 설치할 Kubernetes 클러스터를 찾습니다.
  3. 클러스터 이름을 클릭하여 상세 페이지로 이동합니다.
여러 클러스터가 있다면

각 클러스터마다 별도로 Metrics Server를 설치해야 합니다.


Step 2: 실시간 모니터링 탭 확인

  1. 클러스터 상세 페이지에서 실시간 모니터링 탭을 클릭합니다.
  2. 메트릭 서버 상태를 확인합니다:
    • 설치됨: 이미 메트릭 서버가 설치된 상태
    • 미설치: 메트릭 서버 설치 필요

미설치 시 표시되는 정보

메트릭 서버가 설치되지 않은 경우:

  • 노드/Pod 리소스 사용량이 "N/A"로 표시됩니다.
  • 메트릭 서버 설치 버튼이 활성화됩니다.
  • kubectl top 명령 실행 시 오류가 발생합니다.

Step 3: 메트릭 서버 설치

설치 모달은 3단계 Steps UI로 구성되어 있습니다.

  1. 사전 검증 - 5개 항목 자동 점검
  2. 설치 - 진행 상태 폴링
  3. 확인 - 메트릭 수집 검증

3.1 설치 버튼 클릭

  1. 메트릭 서버 설치 버튼을 클릭합니다.
  2. 설치 모달이 열리며 사전 검증이 자동으로 시작됩니다.
별도의 설치 옵션 없음

metrics-server 버전, TLS 검증, 리소스 요청 등의 입력 UI는 제공되지 않습니다. KIOPS가 검증된 기본 설정으로 설치를 진행합니다.

3.2 사전 검증 (5개 항목)

설치를 시작하기 전에 다음 5가지 항목을 자동으로 점검합니다.

  • SSH 연결: 클러스터 마스터 노드에 SSH로 접근할 수 있는지 확인합니다.
  • Kubernetes 접근: kubectl 명령으로 API 서버에 접근할 수 있는지 확인합니다.
  • 클러스터 권한: metrics-server 리소스를 생성할 수 있는 클러스터 권한이 있는지 확인합니다.
  • 이미지 레지스트리 접근: metrics-server 컨테이너 이미지를 받을 수 있는지 확인합니다.
  • 기존 설치 확인: 이미 metrics-server가 설치되어 있는지 확인합니다.
권한 부족 시

클러스터 권한 항목이 실패하면 인포 배너에 안내가 표시됩니다. [런타임 환경 > 권한 관리 탭] 으로 이동하여 KIOPS ServiceAccount에 필요한 권한을 부여한 뒤 다시 시도하세요.

3.3 설치 실행 진행 단계

  1. 설치 시작 버튼을 클릭하면 spinner와 진행 메시지, pollCount(폴링 횟수)가 표시됩니다.
  2. 백엔드가 다음 리소스를 순차적으로 생성합니다:
    • kube-system 네임스페이스에 배포
    • ServiceAccount 및 RBAC 생성
    • Deployment 생성
    • Service 생성
  3. metrics-server Pod의 상태가 태그 형태로 실시간 표시됩니다 (예: Pending, ContainerCreating, Running).

3.4 리소스 데이터 수집 확인

Pod가 Running 상태가 되더라도 메트릭이 수집되기까지 시간이 필요합니다.

  1. KIOPS는 약 10초 간격으로 최대 12회(약 2분) 까지 메트릭 수집 여부를 폴링합니다.
  2. 폴링 중 메트릭이 수집되면 "메트릭 서버가 설치되었습니다" 메시지가 표시되고 상태가 설치됨으로 변경됩니다.
  3. 폴링 횟수를 모두 소진해도 메트릭이 들어오지 않으면 "수동 확인하세요" 안내가 표시됩니다. 이 경우 잠시 후 실시간 모니터링 탭을 새로고침하여 확인하세요.

3.5 재설치

이미 설치된 환경에서 문제가 발생한 경우 재설치를 수행할 수 있습니다.

  1. 실시간 모니터링 탭에서 재설치 버튼을 클릭합니다.
  2. 기존 설정이 초기화된다는 경고가 표시됩니다.
  3. 확인 후 동일한 3단계(사전 검증 → 설치 → 확인) 흐름으로 재설치가 진행됩니다.
메트릭 서버 삭제 기능

별도의 "메트릭 서버 삭제" UI는 제공되지 않습니다. 재설치만 가능하며, 완전 제거가 필요하면 클러스터 관리자가 kubectl delete 명령으로 직접 수행해야 합니다.


Step 4: 설치 확인

4.1 KIOPS에서 확인

  1. 실시간 모니터링 탭에서 노드 리소스 사용량 확인
  2. 각 노드의 CPU, 메모리 사용률이 표시되는지 확인
  3. 서비스 운영 화면에서 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를 사용할 수 있습니다:

  1. 서비스 배포 설정에서 HPA 활성화 옵션 선택
  2. 스케일링 조건 설정:
    • 최소/최대 레플리카 수
    • CPU 사용률 임계값

문제 해결

설치 실패

  • 권한 오류가 발생하는 경우: RBAC 권한이 부족하여 metrics-server 리소스를 생성할 수 없습니다. [런타임 환경 > 권한 관리 탭] 에서 KIOPS ServiceAccount에 클러스터 관리자 권한을 부여하세요.
  • 네트워크 오류가 발생하는 경우: metrics-server 이미지를 다운로드할 수 없습니다. 클러스터 노드가 인터넷에 연결되어 있는지, 또는 프라이빗 레지스트리 설정이 올바른지 확인하세요.
  • 타임아웃이 발생하는 경우: 클러스터가 응답하지 않습니다. 런타임 환경 페이지에서 클러스터 연결 상태를 확인하고, API 서버가 정상 작동하는지 점검하세요.

설치 후 데이터 없음

  • 원인: 메트릭 수집에 시간이 필요합니다 (최대 약 2분, 12회 폴링)
  • 확인: metrics-server Pod가 Running 상태인지 확인
  • 조치: 폴링이 종료되어 "수동 확인하세요" 메시지가 보이면 잠시 후 새로고침

metrics-server Pod가 CrashLoopBackOff 상태

자체 서명 인증서를 사용하는 환경에서 발생할 수 있습니다:

  1. KIOPS에서 재설치 버튼을 클릭하여 다시 시도합니다.
  2. 문제가 지속되면 클러스터 관리자가 마스터 노드에서 metrics-server Deployment에 --kubelet-insecure-tls 플래그를 수동으로 추가해야 합니다.

특정 노드만 데이터 없음

  • 원인: kubelet 통신 문제
  • 확인: 해당 노드의 네트워크 상태 확인
  • 조치: 노드 방화벽에서 10250 포트 허용

관련 가이드