작성
·
237
2
안녕하세요
강의 잘 보고 있습니다
궁금한 점이 있어서 문의드립니다
현재 get pod -o wide를 해보면 w3 노드에
pod가 배포된 것으로 나오는데요
그러면 서비스 노출 후에 w3 노드의 ip로 접속해야
하지 않을까 하고 생각해보았습니다
하지만 w1, w2, w3 모든 internal ip가 다 먹는데
이유가 궁금합니다. 아니면 제가 생각하고 있는
짐작 자체가 틀린 것일까요?
답변 2
1
안녕하세요
네 말씀해 주신 것처럼 kubectl get po -o wide를 해 보면 배포된 노드가 어디인지 확인할 수 있습니다. 하지만 현재 사용하고 있는 NodePort와 LoadBalancer의 경우 쿠버네티스 Cluster라는 단위에 소속되어 있는 모든 노드에 대해서 적용되는 설정이기 때문에 어느 노드에 있다고 해도 접속되는 것입니다.
이는 사실 Pod는 언제라도 죽을 수 있는 단위이고, 죽게되는 경우 현재 노드에 있으리라는 보장이 없기 때문에 위와 같이 적용하여 사용하는 것입니다.
(스케줄링에 대해서는 다음 강의에서 따로 다루게 되는데 그때 아마 좀 더 심화적으로 이해하실수 있을 것 같습니다. )
만약 필요하다면 특정 노드의 파드(Pod)들만 노출할 수 있는 Port-forward, HostPort 와 같은 방법도 있긴 합니다. 이는 다음 강의에서 다루겠지만 간단하게 말씀드리면, 현재 내가 위치는 노드에서 그대로 포트를 포워딩해서 사용하게 하거나, 또는 호스트(여기서 노드를 의미)에 포트를 노출하여 사용하는 방법이 있습니다.
하지만 위와 같이 Pod의 위치가 (기본적으로) 지정되지 않기 때문에 클러스터 단위로 서비스를 노출해주는 것이 일반적이게 됩니다. :)
이해가 어려우신 부분이나 연관하여 궁금한 내용이 있다면 알려주세요!
조훈 드림.
0
와 빠른 답변 감사합니다!
열공을 위해 책도 구매했습니다~ 책에 대한 질문을 드릴지도 모르겠습니다 ㅎ
좋은 강의 감사합니다