VM 재기동 시 dashboard 접속 불가 관련 프트러블슈팅 기록을 블로그로 남긴다.
1. 에러
VM 재기동 시 dashboard 외부 접속 불가하여 port-forward로 port open 하였더니 CPU 부하로 터미널 정지됨
현상: 대시보드 접속을 위해 kubectl port-forward 실행 중 시스템 전체가 멈춤(Hang).
로그 에러: kernel:watchdog: BUG: soft lockup - CPU#0 stuck for 35s!.
영향: 터미널 입력 불능 및 쿠버네티스 컨트롤 플레인 통신 마비.
2. 원인
- 리소스 과부하 (Resource Exhaustion): 마스터 노드에 API 서버, 네트워크(Calico), 모니터링(Metrics Server), 대시보드가 밀집되어 기동 시 CPU 점유율이 임계치를 초과함.
- 통신 방식의 비효율성: port-forward는 사용자 PC와 VM 간의 터널링을 위해 실시간 CPU 인터럽트를 과다하게 발생시킴. 저사양 환경에서 이 인터럽트 처리가 밀리며 커널이 락업(Lockup)에 빠짐.
- 접속 설정의 폐쇄성: 기본 설치된 대시보드는 ClusterIP(내부용) 타입으로, 외부 브라우저에서 직접 접근이 불가능하여 사용자가 무리한 터널링을 시도하게 유도함.
3. 해결
Vagrant 파일에 아래 script 추가함
-> 서비스를 ClusterIP에서 NodePort로 변경하여 VM IP의 특정 포트(30000)를 대시보드에 직접 할당 등
echo '======== [9-2] Dashboard 설치 ========‘
…
echo '======== ***** 대시보드 외부 오픈 (추가) ***** ========‘
# [설정 1] NodePort 30000번으로 고정
sleep 10 # <--- 대시보드 API가 준비될 시간을 줌
kubectl patch svc kubernetes-dashboard -n kubernetes-dashboard -p '{"spec": {"type": "NodePort", "ports": [{"port": 443, "nodePort": 30000, "targetPort": 8443}]}}’
# [설정 2] 로그인 화면에서 Skip 버튼 활성화
kubectl patch deployment kubernetes-dashboard -n kubernetes-dashboard --type 'json' -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--enable-skip-login"}]’
# [설정 3] Skip 버튼 클릭 시 관리자 권한 부여
kubectl create clusterrolebinding dashboard-skip-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard
echo '======== ***** 대시보드 외부 오픈 (추가) 끝 ***** ========‘
여러모로 알아야 할 게 많다.
'Cloud & Infra > K8S' 카테고리의 다른 글
| [K8S] 트러블슈팅 - 마스터 노드 재기동 후 정적 파드 실행 오류 (0) | 2026.03.31 |
|---|---|
| [K8S] K8S object 이해 (0) | 2026.03.16 |
| [K8S] App 배포 및 주요기능(Routing, AutoScaling 등) Test (0) | 2026.03.16 |
| [K8S] K8S에서 Prometheus, Loki, Grafana 설치하기 (0) | 2026.03.11 |
| [K8S] K8S 구성요소(컴포넌트)와 인터페이스 규격 (0) | 2026.03.10 |