Myo-Kyeong Tech Blog

[Kubernetes] Metric API 오류 해결 방법 : Docker Desktop에 Metrics Server 설치 및 TLS 인증 문제 해결 본문

DevOps/Kubernetes

[Kubernetes] Metric API 오류 해결 방법 : Docker Desktop에 Metrics Server 설치 및 TLS 인증 문제 해결

myo-kyeong 2024. 8. 11. 21:50
728x90
반응형

 

이 글은 Docker Desktop Kubernetes 클러스터에서 실시간 리소스 사용량을 확인하기 위해 kubectl top 명령어를 실행하다가 발생한 Metrics API 오류 해결 과정을 정리한 내용입니다.

 


Metrics Server 설치 및 확인

 

https://cloud.tencent.com/developer/article/2139351

 

Metrics Server 최신 버전 설치

  • Metrics Server는 각 노드의 Kubelet에서 메트릭 데이터를 수집해 클러스터 전체의 리소스 사용량을 집계함
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

 

Metrics Server 파드 상태 확인

  • kube-system 네임스페이스 내의 Metrics Server 파드 Running 상태인지 확인하기
$ kubectl get pods -n kube-system
NAME                                     READY   STATUS    RESTARTS      AGE
coredns-76f75df574-8nhvk                 1/1     Running   1 (20h ago)   162d
etcd-docker-desktop                      1/1     Running   1 (20h ago)   162d
kube-apiserver-docker-desktop            1/1     Running   1 (20h ago)   162d
kube-controller-manager-docker-desktop   1/1     Running   1 (20h ago)   162d
kube-proxy-89xj2                         1/1     Running   1 (20h ago)   162d
kube-scheduler-docker-desktop            1/1     Running   2 (14h ago)   162d
metrics-server-b677dfd6f-fv4sz           1/1     Running   0             116m

 

 

Metrics Server TLS 검증 비활성화 설정

Docker Desktop 과 같은 로컬환경에서는 기본적으로 제공되는 인증서 때문에 Metrics Server가 Kubelet과의 통신에서 문제가 발생할 수 있기 때문에 Metrics Server 매니페스트 파일에서 TLS 검증을 비활성화로 수정해주어야 합니다.

 

'metrics-server' 디플로이먼트 수정

  • 'spec.template.spec.containers.args' 섹션에 '--kubelet-insecure-tls' 플래그 추가 
$ kubectl edit deployment metrics-server -n kube-system
args:
- --kubelet-insecure-tls

 

Metrics Server가 Kubernetes API 연결 상태 확인

  • metrics.k8s.io AP서비스  AVAILABLE 이 True 인지 확인하기
$ kubectl get apiservice v1beta1.metrics.k8s.io
NAME                     SERVICE                      AVAILABLE   AGE
v1beta1.metrics.k8s.io   kube-system/metrics-server   True        18h

 

 

다음과 같이 metrics server 설치해주고 TLS 검증 비활성화 해준 후, kubectl top 명령어가 잘 실행되었습니다 :)

 

728x90
반응형