인프런 커뮤니티 질문&답변

southouse님의 프로필 이미지
southouse

작성한 질문수

대세는 쿠버네티스 [초급~중급]

Service - 실습

Node Port 실습

작성

·

274

2

안녕하세요. 구글 클라우드 플랫폼 이용해서 실습 중입니다.

현재 강의는 VM 환경이라 동일한 환경은 아니라 환경 문제인진 모르겠습니다만, 영상과 동일하게 Service를 Node Port 모드로 생성한 후에, 'Node1의 내부 IP:30000'으로 curl 명령어를 보내면 `Time out` 상태로 리턴합니다.

어떻게하면 성공적으로 리턴을 받을 수 있을까요?

답변 3

2

GCP 환경에서 curl [Node1의 내부IP]:30000/hostname 명령어가 실행되려면 node에 ssh 접속 후 실행하시면 됩니다.

노드에 접속하는 방법은...

"compute engine > vm 인스턴스" 메뉴에서 kubernetes cluster 생성할 때 만들어진 node 머신 리스트를 확인할 수 있고

연결(ssh) 방법 중 gcloud 명령어를 클릭해서 복사하신 후 콘솔 창에서 실행하면 해당 노드에 접속됩니다.

gcloud compute ssh --zone "asia-east2-c" "인스턴스 템플릿" --project "프로젝트 ID"

1

southouse님의 프로필 이미지
southouse
질문자

네 답변을 늦게 봤네요! 죄송합니다!

김태민님 강의에서는 'Node1의 내부 IP:30000/hostname' 을 해도 curl 명령어가 정상 실행이 되더라구요. 이 부분은 gcp와 vm의 차이인 거 같습니다. 어찌됐건 vm 호스트들은 메인 PC의 내부 아이피를 할당 받아서 사용하는 것이라 메인 PC와 vm 호스트들 간의 내부 IP로의 통신이 가능하지만, gcp는 이런 환경이 아니라서 안 되는 것 같더라구요.

하지만, 'Node1의 외부 IP:30000/hostname' 에 대해서는 방화벽을 통해서 해결했습니다.

빠르고 정확하고 좋은 답변 감사합니다! 남은 시간 더 화이팅해서 강의 듣겠습니다~

=> 실제로 링크 주신 것을 살펴보면 방화벽은 외부 IP(public IP)에 대한 방화벽 설정인 것으로 나와 있는 거 같습니다!

1

일프로님의 프로필 이미지
일프로
지식공유자

안녕하세요. 

제가 GKE 환경을 항상 유지하고 있는 상태가 아니라서 직접 확인을 해보기가 힘들고요.

검색을 해보니까 방화벽을 열어주라는 얘기가 있네요.

----------------

or GCE opening up the above for publicly on all nodes could look like:

gcloud compute firewall-rules create myservice --allow tcp:30080,tcp:30443

Once this is in place your services should be accessable through any of the public IPs of your nodes. You'll find them with:

gcloud compute instances list

----------------

한번 해보시겠어요?

https://stackoverflow.com/questions/42040238/how-to-expose-nodeport-to-internet-on-gce

southouse님의 프로필 이미지
southouse

작성한 질문수

질문하기