본문 바로가기
Come on IT/DevOps

prometheus-kube-prometheus-kube-controller-manager/0 해결방법

by JONGSKY 2025. 2. 26.
728x90
SMALL

1. 글을 쓰게 된 계기

 

 

마스터 노드에서 정상적으로 수집이 안될 때 해결하는 방법에 대해서 정리하고자 합니다.

 

2. 해결방법

 

kube-controller-manager가 10257 포트에서 리슨 중인지 확인

먼저 kube-controller-manager가 10257 포트에서 제대로 실행 중인지 확인해야 합니다.

🛠️ 40번 마스터 노드에서 실행:

netstat -tunlp | grep 10257
 

👉 결과 확인

  • 정상 (0.0.0.0:10257 또는 127.0.0.1:10257으로 리슨 중) → Prometheus 접근 문제일 가능성 큼.
  • 아무 결과도 없음 → kube-controller-manager가 해당 포트를 열지 않음 → 설정 변경 필요.

 

kube-controller-manager가 localhost(127.0.0.1)에서만 리슨하는지 확인

대부분의 배포에서는 kube-controller-manager가 기본적으로 127.0.0.1:10257에서만 리슨하도록 설정되어 있음.
즉, Prometheus(외부 네트워크)에서 접근할 수 없음.

🛠️ 확인 방법:

ps aux | grep kube-controller-manager
 

출력에서 --bind-address=127.0.0.1 옵션이 있는지 확인!

  • --bind-address=127.0.0.1이면 → Prometheus가 접근 불가
  • --bind-address=0.0.0.0이면 → Prometheus가 접근 가능

👉 해결 방법:
만약 --bind-address=127.0.0.1로 되어 있다면, 0.0.0.0으로 변경해야 Prometheus에서 접근 가능.

 

 

kube-controller-manager 설정 변경 (localhost 리슨 해제)

kube-controller-manager는 Static Pod으로 실행되므로, 설정을 변경하려면 Manifest 파일을 수정해야 합니다.

🛠️ 수정 방법 (마스터 노드에서 실행)

sudo vi /etc/kubernetes/manifests/kube-controller-manager.yaml
 

이제 아래 옵션을 찾습니다.

    - --bind-address=127.0.0.1
 

위 줄을 아래와 같이 변경:

    - --bind-address=0.0.0.0
 
 

변경 후 저장하고 파일을 닫으면, Static Pod이 자동으로 재시작되며 설정이 반영됩니다.

🛠️ 변경 적용 후 확인

kubectl get pods -n kube-system | grep kube-controller-manager
 

Pod이 재시작되었는지 확인 후, 다시 netstat -tunlp | grep 10257로 확인.

✅ 이제 kube-controller-manager가 0.0.0.0:10257에서 리슨하면 Prometheus에서 접근 가능!

728x90
LIST