Table of Contents
다양한 메트릭 서버 설치에 관한 오류들을 알아보자.
| 
					 1 2  | 
						$ kubectl top pod Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)  | 
					
메트릭 서버(Metric Server) 의 파드(Pod)가 정상적으로 Running 상태라 하더라도 이와같은 오류 메시지를 만날 수 있다. 이 오류는 kube-apiserver 의 로그에 다음과 같이 관련 오류가 나온다.
| 
					 1  | 
						Apr 23 15:49:33 kmaster1.systemv.local kube-apiserver[4598]: E0423 15:49:33.330967    4598 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apir>Apr 23 15:49:38 kmaster1.systemv.local kube-apiserver[4598]: E0423 15:49:38.332227    4598 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://10.32.0.>Apr 23 15:49:43 kmaster1.systemv.local kube-apiserver[4598]: E0423 15:49:43.333609    4598 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://10.32.0.  | 
					
뒤쪽에 삭제된 부분은 “net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)” 이다. 응답커넥션을 맺다가 안되서 timeout 으로 끝난 것이다.
이것은 kube-apiserver 다음의 커맨드 파라메터를 추가해줘야 한다.
- –enable-aggregator-routing=true
 
메트릭 서버의 0.4.3 버전부터는 쿠버네티스의 Aggregator Layer 를 이용한다. API 서버가 실행중인 호스트에 kube-proxy 가 없을 경우에 위 파라메터를 추가해줘야 한다.
워커 노드 메트릭 수집 안됨
| 
					 1 2 3 4 5  | 
						$ kubectl top nodes NAME                     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%      kworker1.systemv.local   <unknown>          <unknown>     <unknown>           <unknown>          kworker2.systemv.local   <unknown>          <unknown>     <unknown>           <unknown>          kworker3.systemv.local   <unknown>          <unknown>     <unknown>           <unknown>  | 
					
쿠버네티스의 Deployments.apps 리소스에 배포된 Metric Server 메니페스트를 다음과 같이 수정해 줘야 한다.
| 
					 1 2 3 4  | 
						$ kubectl edit deployment.apps/metrics-server -n kube-system       dnsPolicy: ClusterFirst       hostNetwork: true       nodeSelector:  | 
					
hostNetwork: true 를 추가해줘야 한다.