localhost:30000 접속 안되는 문제 관련 질문
25
投稿した質問数 2
저는 Docker Desktop Kubernetes 환경에서 실습을 진행 중입니다.
강의 영상과 동일하게 Deployment와 NodePort 타입 Service를 생성했는데, 브라우저에서 localhost:30000으로 접속하면, ERR_CONNECTION_REFUSED가 발생하면서 접속이 되지 않습니다.
현재 제 실습 진행 상태입니다 !
(1) Pod는 정상 실행 중입니다.
kubectl get pod 결과 3개 Pod 모두 Running 상태였습니다.
(2) Spring Boot 애플리케이션도 컨테이너 내부에서 정상 실행 중입니다.
kubectl logs 확인 시 Tomcat이 8080 포트로 정상 실행되었습니다.
(3) Pod 내부에서 직접 요청하면 정상 응답이 옵니다.
kubectl exec -it <pod명> -- curl localhost:8080/ → 결과: Hello, World!
(4) Service도 Pod를 정상적으로 잡고 있습니다.
kubectl describe service spring-service 확인했었을 때, Endpoints에 10.244.x.x:8080 형태로 Pod 3개가 정상적으로 표시되었습니다.
그런데 NodePort 방식으로 localhost:30000 접속이 되지 않았고, 로컬 PC 포트(30000)과 서비스 포트(8080)를 포트포워딩한 뒤에는 정상 접속이 되었습니다.
kubectl port-forward service/spring-service 30000:8080
이후 localhost:30000으로 접속하니까 정상적으로 Hello, World가 나왔습니다.
강의 영상에서는 별도의 포트포워딩 없이도 NodePort로 정상 접속이 가능한데, 제 환경에서는 어떤 문제 때문에 접속이 되지 않는지 궁금합니다.
回答 2
0
안녕하세요 ! 질문 잘 해주셨어요 ~
질문해주신 내용에 대해 답변드려볼게요 !
우선 말씀해주신 진단 결과를 보면 쿠버네티스 리소스 자체에는 아무런 문제가 없는 상태네요 !
port-forward로는 접속이 잘 되시는 것도 같은 맥락이구요 !
강의를 그대로 따라하셨는데도 발생하는 이 현상은 Docker Desktop Kubernetes 환경에서 가끔 발생하는 호스트-NodePort 매핑 이슈일 가능성이 높아요 !
쿠버네티스 클러스터 안에서는 NodePort 30000번 포트가 정상적으로 열려있지만, Docker Desktop이 그 포트를 호스트(로컬 PC)의 localhost:30000으로 노출해주는 과정에서 문제가 생기는 케이스예요!
다음 순서대로 한 번 시도해보시면 좋을 것 같습니다~
먼저 Docker Desktop을 완전히 종료(Quit Docker Desktop)했다가 다시 시작해보세요.
이 때 단순히 재시작이 아니라 트레이 아이콘에서 Quit으로 완전히 종료한 후 1분 정도 기다렸다가 다시 켜주시는 게 중요해요 ~
그래도 안 되면 Docker Desktop 설정에서 "Reset Kubernetes Cluster"를 한 번 눌러서 클러스터를 초기화한 다음 yaml들을 다시 apply 해보시는걸 추천드려요 !
만약 그래도 안 되면 호스트 PC에서 이미 30000번 포트를 다른 프로세스가 점유하고 있을 가능성도 있어요 !
윈도우라면 netstat -ano | findstr :30000, 맥이라면 lsof -i :30000 명령어로 한 번 확인해보시면 좋을 것 같아요 :)
위 방법들로도 해결이 안 되시면, 사용 중이신 OS(Windows / Mac)와 함께 kubectl describe service spring-service 결과, kubectl get svc -o wide 결과와 함께 언제든 편하게 추가 질문 남겨주세요 ~~
0
안녕하세요, 인프런 AI 인턴입니다. docu님.
Docker Desktop Kubernetes 환경에서는 NodePort로 직접적인 외부 접속이 어려울 수 있는데, 이는 Docker Desktop이 WSL2 기반에서 작동하기 때문입니다. 이 설정으로 localhost와 NodePort 프록시 간 연결이 자동으로 허용되지 않기 때문에 포트 포워딩이 필요한 것입니다.
문제 해결을 위한 제안
Docker Desktop 네트워크 이해: Docker Desktop은 기본적으로 WSL2로 구현되어 있어서 Windows의 네트워크와 다르게 작동합니다. WSL2 내부의 Kubernetes 노드들은 Windows에서 직접적으로 접근할 수 없는 네트워크 환경에 있습니다.
WSL2 네트워크 환경:
localhost대신에 WSL2 네트워크의 IP 주소로 접근해야 할 때가 있습니다. 그러므로kubectl cluster-info를 사용하여 클러스터 정보를 확인하고 올바른 IP로 접근하는 방법을 시도해볼 수 있습니다. (예:http://<클러스터IP>:30000)NodePort 설정 재확인:
kubectl describe service spring-service를 통해 NodePort 설정이 정확한지 확인하세요. 특히 포트가 노출되어 있는지, 방화벽 설정이나 네트워크 규칙이 없는지 점검해 봅니다.Docker Desktop 네트워크 설정 검토: Docker와 관련된 네트워크 설정이 올바르게 되어 있는지 확인하고 필요에 따라 조정합니다.
유사한 문제 해결 사례
Deployment-service 연결 과정에서 오류..? - 비슷한 상황에서 WSL2와 Docker 환경에서 NodePort의 접근 문제에 대해 다룬 사례입니다.
30000 Port로 접속이 안됩니다 ㅠㅠ - 비슷한 NodePort 문제 해결을 위한 팁을 제공하는 질문입니다.
이러한 자료를 참고하여 문제를 진단해 보시면 도움이 될 수 있습니다. NodePort와 WSL2 관련 환경에서의 포트 접근은 꽤 자주 발생하는 이슈입니다. 따라서 포트 포워딩을 손쉽게 사용하는 것도 하나의 방법일 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
설치 관련 문의
0
36
2
Docker Desktop 설치 관련 질문
0
43
2
실습을 가상환경에서 해도 따라하는데 지장이 없나요?
0
63
2
쿠버네티스 학습
0
64
1
Docker Desktop 설치 관련 질문드립니다!
0
84
2
섹션 3 (14강) 04:52 분경 yaml 파일 작성에 대한 질문드립니다.
0
95
2
쿠버네티스 다음 강의
0
82
2
html 적용이 되지 않음
0
71
1
ERROR [internal] load metadata for docker.io/library/openjdk:17-jdk
0
141
2
이미지가 없다고 에러가 계속 떠요
0
91
3
Deployment-service 연결 과정에서 오류..?
0
82
2
Secret이 외부 노출을 어떤 식으로 피할 수 있게 하는지
0
79
2
Secret을 활용한 환경변수 분리 강의자료 문의
0
72
2
도커 쿠버네티스 기다림 오류 문제..
0
146
2
쿠버네티스 고급편은 언제 나오나요?
0
95
1
질문있습니다.
0
77
2
pdf 자료에 섹션3 누락
0
80
3
pvc CrashLoopBackOff 문제
0
141
6
AMI 유형
0
71
2
마스터 노드 vs 워커 노드
0
126
2
aws eks --region ap-northeast-2 update-kubeconfig --name kube-practice 권한 거부
0
121
2
30000 Port로 접속이 안됩니다 ㅠㅠ
0
159
3
안녕하세요. 실습 환경 질문드립니다.
0
85
1
50강 빌드파일
0
70
2

