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
'Come on IT > DevOps' 카테고리의 다른 글
Prometheus exporter 에서 수집이 안되는 경우 (feat. grafana) (0) | 2025.02.26 |
---|---|
K8s 워커노드 추가하는 방법 (0) | 2025.02.14 |
bpf_jit 증가에 따른 seccomp 오류 해결 방법 (error loading seccomp filter) (0) | 2025.01.04 |
K8s namespace가 deleted 안될 때 (feat. monitoring) (0) | 2024.10.14 |
Prometheus 및 Grafana 설치 (feat. 쿠베네티스) (1) | 2024.10.07 |