메트릭 서버 설치

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명령어로 터미널에서 직접 리소스 사용량을 확인할 수 있습니다.
- KIWI 대시보드에서 리소스 사용량 확인이 필요할 때
- HPA(자동 스케일링)를 사용하고 싶을 때
- 리소스 기반 스케줄링이 필요할 때
- 운영 모니터링을 구축하고 싶을 때
사전 요구사항
설치를 시작하기 전에 다음 사항을 확인하세요.
- Kubernetes 클러스터가 KIWI에 등록되어 있어야 합니다.
- 클러스터 관리자 권한이 필요합니다.
이 기능에 접근할 수 없다면 기관 관리자에게 권한을 요청하세요.
Step 1: 런타임 환경 페이지 이동
먼저 설치할 클러스터를 선택합니다.
- 좌측 메뉴에서 [런타임 환경] 을 클릭합니다.
- Metrics Server를 설치할 Kubernetes 클러스터를 찾습니다.
- 클러스터 이름을 클릭하여 상세 페이지로 이동합니다.
각 클러스터마다 별도로 Metrics Server를 설치해야 합니다.
Step 2: 모니터링 탭 확인
- 클러스터 상세 페이지에서 모니터링 탭을 클릭합니다.
- 메트릭 서버 상태를 확인합니다:
- 설치됨: 이미 메트릭 서버가 설치된 상태
- 미설치: 메트릭 서버 설치 필요
미설치 시 표시되는 정보
메트릭 서버가 설치되지 않은 경우:
- 노드/Pod 리소스 사용량이 "N/A"로 표시됩니다.
- 메트릭 서버 설치 버튼이 활성화됩니다.
kubectl top명령 실행 시 오류가 발생합니다.
Step 3: 메트릭 서버 설치
3.1 설치 버튼 클릭
- 메트릭 서버 설치 버튼을 클릭합니다.
- 설치 확인 대화상자가 표시됩니다.
3.2 설치 옵션 확인
설치 전 다음 옵션을 확인합니다:
- 버전: 설치할 metrics-server 버전을 선택합니다. 기본적으로 최신 안정 버전이 선택되어 있으며, 특별한 이유가 없으면 기본값을 사용하는 것을 권장합니다.
- TLS 인증서 검증: 자체 서명 인증서를 사용하는 환경에서는 비활성화해야 합니다. 기본값은 비활성화 상태이며, 공인 인증서를 사용하는 환경에서는 활성화할 수 있습니다.
- 리소스 요청: metrics-server Pod에 할당할 리소스입니다. 기본값은 CPU 100m, Memory 200Mi로 설정되어 있으며, 대규모 클러스터에서는 증가가 필요할 수 있습니다.
3.3 설치 실행
- 설치 버튼을 클릭합니다.
- 설치 진행 상황이 표시됩니다:
kube-system네임스페이스에 배포- ServiceAccount 및 RBAC 생성
- Deployment 생성
- Service 생성
3.4 설치 완료 확인
설치가 완료되면:
- "메트릭 서버가 설치되었습니다" 메시지가 표시됩니다.
- 상태가 설치됨으로 변경됩니다.
- 1-2분 후 리소스 사용량 데이터가 수집됩니다.
Step 4: 설치 확인
4.1 KIWI에서 확인
- 모니터링 탭에서 노드 리소스 사용량 확인
- 각 노드의 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%
설치 후 활용
KIWI 대시보드에서 확인
메트릭 서버 설치 후 KIWI에서 확인할 수 있는 정보:
- 노드 탭: 각 노드의 CPU/메모리 사용량
- 서비스 운영: 각 Pod의 리소스 사용량
- 대시보드: 클러스터 전체 리소스 현황
HPA 설정 (자동 스케일링)
메트릭 서버가 설치되면 HPA를 사용할 수 있습니다:
- 서비스 배포 설정에서 HPA 활성화 옵션 선택
- 스케일링 조건 설정:
- 최소/최대 레플리카 수
- CPU 사용률 임계값
- 메모리 사용률 임계값
문제 해결
설치 실패
- 권한 오류가 발생하는 경우: RBAC 권한이 부족하여 metrics-server 리소스를 생성할 수 없습니다. KIWI가 사용하는 ServiceAccount에 클러스터 관리자 권한이 있는지 확인하세요.
- 네트워크 오류가 발생하는 경우: metrics-server 이미지를 다운로드할 수 없습니다. 클러스터 노드가 인터넷에 연결되어 있는지, 또는 프라이빗 레지스트리 설정이 올바른지 확인하세요.
- 타임아웃이 발생하는 경우: 클러스터가 응답하지 않습니다. 런타임 환경 페이지에서 클러스터 연결 상태를 확인하고, API 서버가 정상 작동하는지 점검하세요.
설치 후 데이터 없음
- 원인: 메트릭 수집에 시간이 필요합니다 (1-2분)
- 확인: metrics-server Pod가 Running 상태인지 확인
- 조치: 잠시 후 새로고침
metrics-server Pod가 CrashLoopBackOff 상태
자체 서명 인증서를 사용하는 환경에서 발생할 수 있습니다:
- KIWI에서 재설치 버튼 클릭
- TLS 인증서 검증 비활성화 옵션 선택
- 재설치 실행
특정 노드만 데이터 없음
- 원인: kubelet 통신 문제
- 확인: 해당 노드의 네트워크 상태 확인
- 조치: 노드 방화벽에서 10250 포트 허용
메트릭 서버 삭제
더 이상 메트릭 서버가 필요하지 않은 경우:
- 모니터링 탭에서 메트릭 서버 삭제 버튼 클릭
- 확인 대화상자에서 삭제 클릭
- 관련 리소스가 모두 삭제됩니다.
삭제 후 영향:
- 리소스 사용량 데이터가 "N/A"로 표시됩니다.
- HPA가 작동하지 않습니다.
kubectl top명령이 실패합니다.