Kubernetes 메트릭 서버 설치 방법과 kubectl top 명령어 활용하기

2–3분

1. 서론

Kubernetes(K8s)는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 운영하는 오픈소스 플랫폼입니다. 그중에서 **메트릭 서버(Metrics Server)**는 클러스터 내의 리소스 사용량을 실시간으로 수집하고 제공하는 중요한 컴포넌트입니다. 메트릭 서버는 특히 클러스터 자원의 효율적인 운영과 모니터링에 필수적이며, HPA(Horizontal Pod Autoscaler)와 같은 기능에서 핵심적인 역할을 합니다.

이 글에서는 Kubernetes 클러스터에 메트릭 서버를 설치하는 방법과 설치 후 kubectl top 명령어를 사용해 클러스터 상태를 모니터링하는 방법을 소개합니다.

2. Kubernetes 메트릭 서버 설치 방법

메트릭 서버를 설치하기 위해서는 먼저 사전 준비 사항을 확인한 후, 공식 리포지토리에서 제공하는 YAML 파일을 사용해 설치를 진행할 수 있습니다.

사전 준비 사항

  • Kubernetes 클러스터가 정상적으로 구성되어 있어야 합니다.
  • kubectl이 설치되어 있어야 합니다.

메트릭 서버 설치 명령어 및 YAML 파일 다운로드

메트릭 서버를 설치하려면 아래 명령어를 실행하여 필요한 컴포넌트들을 설정할 수 있습니다.

kubectl apply -f <https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.2/components.yaml>

이 명령어는 components.yaml 파일을 다운로드하고, 이를 사용해 메트릭 서버를 클러스터에 설치합니다.

components.yaml 파일에 변수 추가 (kubelet-insecure-tls)

기본적으로 메트릭 서버는 클러스터의 각 노드에서 데이터를 수집합니다. 하지만 일부 환경에서는 TLS 인증 문제로 메트릭 서버가 정상적으로 데이터를 수집하지 못할 수 있습니다. 이 문제를 해결하기 위해 kubelet-insecure-tls 플래그를 추가하여 인증서를 무시하고 데이터를 수집하도록 설정할 수 있습니다.

components.yaml 파일의 내용을 편집하여 다음 줄을 추가합니다:

--kubelet-insecure-tls

이 플래그는 메트릭 서버가 클러스터 내 모든 노드에서 안전하게 데이터를 수집할 수 있도록 합니다. 파일 수정 후, 아래 명령어로 다시 적용합니다:

kubectl apply -f components.yaml

3. 메트릭 서버의 주요 역할과 이점

메트릭 서버는 Kubernetes 클러스터에서 다음과 같은 주요 역할을 합니다:

  • 리소스 모니터링: 메트릭 서버는 클러스터 내 모든 노드와 파드(pod)의 CPU, 메모리 사용량을 실시간으로 모니터링합니다.
  • 자동 확장 지원: 메트릭 서버는 HPA와 연동되어 파드의 리소스 사용량에 따라 자동으로 확장하거나 축소할 수 있도록 데이터를 제공합니다.
  • 운영 효율성 향상: 메트릭 서버는 운영자가 클러스터 상태를 지속적으로 모니터링하고 필요한 조치를 취할 수 있도록 도와줍니다.

4. kubectl top 명령어를 사용하여 클러스터 리소스 모니터링하기

메트릭 서버 설치 후, kubectl top 명령어를 사용하여 클러스터의 리소스 사용 상태를 쉽게 확인할 수 있습니다.

kubectl top 명령어 개요

kubectl top 명령어는 클러스터 내의 노드 및 파드의 CPU와 메모리 사용량을 보여줍니다. 이 명령어를 통해 클러스터 자원의 실시간 사용 상태를 확인하고, 필요한 경우 자원 할당을 조정할 수 있습니다.

kubectl top nodeskubectl top pods의 사용 예시

  • 노드의 리소스 사용량 확인: 이 명령어는 클러스터 내 모든 노드의 CPU와 메모리 사용량을 출력합니다. 각 노드의 현재 자원 상태를 한눈에 파악할 수 있습니다.
kubectl top nodes
  • 파드의 리소스 사용량 확인: 이 명령어는 클러스터 내 모든 파드의 CPU와 메모리 사용량을 출력합니다. --all-namespaces 플래그를 사용하여 모든 네임스페이스의 파드를 확인할 수 있습니다.
kubectl top pods --all-namespaces

5. 결론

메트릭 서버는 Kubernetes 클러스터 운영의 필수적인 구성 요소로, 클러스터 내 자원의 사용 상태를 실시간으로 모니터링하고 자동 확장을 지원합니다. 이를 통해 운영자는 클러스터의 상태를 효과적으로 파악하고 관리할 수 있습니다. kubectl top 명령어는 메트릭 서버의 데이터를 활용하여 현재 자원 상태를 쉽게 확인할 수 있는 도구로, 이를 통해 클러스터의 성능을 최적화할 수 있습니다.

메트릭 서버를 설치하고 kubectl top 명령어를 활용해 Kubernetes 클러스터의 운영 효율성을 극대화해보세요!


이 글이 도움이 되었길 바랍니다. 블로그 포스트에 대한 추가 요청이 있으면 언제든지 말씀해 주세요!