작성
·
294
1
kubectl get service 명령어에서 PORT(S)가
80:3xxxx/TCP와 같이 출력되고 있습니다.
실습에서
NodePort에서는 3xxxx포트로 접속했고
LoadBalancer에서는 80포트로 접속하였습니다.
타입에 따라 다른 포트를 사용하는 이유가 궁금합니다.
답변 1
2
안녕하세요
타입에 따라 port가 다른 것은 노드포트가 사용할 수 있는 Port의 범위가 정해져 있기 때문입니다.
(보통 Desgined 라고 표현하기도 합니다.)
노드포트는 30000-32768 을 사용할 수 있기 때문에 3xxxx라고 적어주신 포트를 사용해서 직접 노드에 접속했던 것입니다.
그리고 로드밸런서를 80으로 접속한 것은 우리가 --port=80으로 선언하여 로드밸런서가 외부에 노출될때 접속할 수 있는 포트를 80번으로 정해주었던 것입니다.
여기서 혼동이 올 수 있는 것이 둘다 --port로 했는데 왜 로드밸런서와 노드포트는 다른가요 일텐데..
사실 이 부분을 알기 위해서는 알아야 하는 것들이 좀 많아서 이번 과정에서는 다루지 않았습니다.
다음 과정에서 코드와 함께 다루겠지만...
rough하게 아마 지금 궁금함을 풀어드리기 위해서 설명을 좀 드리겠습니다 :) 이게 공부에 도움이 되실꺼 같아서요!
NodePort를 expose할 때
--port는 워커 노드 뒤에 연결되는 Pod/컨테이너/애플리케이션(모두 유사한 말)를 접속하기 위한 포트입니다.
LoadBalancer를 expose할 때
--port는 로드밸런서를 통해서 Pod에 접속되기 위해 노출되는 접속 포트 자체입니다.
이게 아마 혼동의 원인이 되실꺼 같은데..현재로서는 디자인적인 부분이라...익숙해지거나..혹은 나중에 코드로 가면 그나마 좀 이해하기 쉽게 되어 있으니, 일단 이정도로 이해하고 코드를 볼때 다시 익숙해 지시면 좋겠습니다. :)
이해가 어려우신 부분이 있다면 꼭 편하게 다시 얘기해주세요
조훈 드림.