Docker & Kubernetes/※에러※

error: Metrics API not available(결론: 포트 확인)

miracle21 2024. 12. 6. 16:04
반응형

 

 

metric-server를 설치 했는데도 정상적으로 작동하지 않는 경우가 있다.

 

 

1. kubectl logs 결과 tls 에러가 발생하는 경우

 

pod가 돌지도 않고, hpa targets도 unknown으로 뜬다.

 

 

tls: failed to verify certificate: x509: cannot validate certificate for 10.0.2.10 because it doesn't contain any IP SANs" node="master"

 

 

이 경우에는 kubectl edit deployment metrics-server -n kube-system 명령어로 파일에 진입해서

 

kubelet과의 TLS 인증서 검증을 무시하도록 하고,

 

메트릭 서버가 클러스터 노드의 네트워크 인터페이스를 직접 사용하여 kubelet과 통신하도록 설정한다.

 

 

 

spec.containers.args 항목에 --kubelet-insecure-tls 플래그를 추가하고

 

spec.template.spec 부분에 hostNetwork: true를 추가하면 된다.

 

 

보안적인 측면에서는 좋지 않다고 하나, 다른 방법은 아직 찾지 못했다.

 

 

 

 

kubectl rollout restart deployment metrics-server -n kube-system 명령어로 재실행.

 

 

 

2. kubectl logs 결과 address already in use 에러가 발생하는 경우

 

 

앞에서 metrics-server 파일을 수정하고 재배포를 해도

 

pod는 돌아가고 있는데, HPA targets가 unknown으로 뜨고 kubectl top 명령어도 안먹을 때가 있다.

 

 

그 때 pod 로그를 확인해보면 아래와 같은 에러가 떴다면

 

 

panic: failed to create listener: failed to listen on 0.0.0.0:10250: listen tcp 0.0.0.0:10250: bind: address already in use

 

 

 

kubectl edit deployment metrics-server -n kube-system 명령어로 파일에 진입해서

 

모든 10250 포트번호를 바꿔준다. 난 10251로 바꿔줬다.

 

 

 

 

 

 

결과

 

 

 

 

 

 

 

반응형