• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

질문입니다.

21.06.20 14:40 작성 조회수 178

2

안녕하세요

강의 잘 보고 있습니다

궁금한 점이 있어서 문의드립니다

현재 get pod -o wide를 해보면 w3 노드에

pod가 배포된 것으로 나오는데요 

그러면 서비스 노출 후에 w3 노드의 ip로 접속해야 

하지 않을까 하고 생각해보았습니다

하지만 w1, w2, w3 모든 internal ip가 다 먹는데

이유가 궁금합니다. 아니면 제가 생각하고 있는

짐작 자체가 틀린 것일까요?

답변 2

·

답변을 작성해보세요.

1

안녕하세요 

네 말씀해 주신 것처럼 kubectl get po -o wide를 해 보면 배포된 노드가 어디인지 확인할 수 있습니다. 하지만 현재 사용하고 있는 NodePortLoadBalancer의 경우 쿠버네티스 Cluster라는 단위에 소속되어 있는 모든 노드에 대해서 적용되는 설정이기 때문에 어느 노드에 있다고 해도 접속되는 것입니다. 

이는 사실 Pod는 언제라도 죽을 수 있는 단위이고, 죽게되는 경우 현재 노드에 있으리라는 보장이 없기 때문에 위와 같이 적용하여 사용하는 것입니다.

(스케줄링에 대해서는 다음 강의에서 따로 다루게 되는데 그때 아마 좀 더 심화적으로 이해하실수 있을 것 같습니다. )

만약 필요하다면 특정 노드의 파드(Pod)들만 노출할 수 있는 Port-forward, HostPort 와 같은 방법도 있긴 합니다. 이는 다음 강의에서 다루겠지만 간단하게 말씀드리면, 현재 내가 위치는 노드에서 그대로 포트를 포워딩해서 사용하게 하거나, 또는 호스트(여기서 노드를 의미)에 포트를 노출하여 사용하는 방법이 있습니다. 

하지만 위와 같이 Pod의 위치가 (기본적으로) 지정되지 않기 때문에 클러스터 단위로 서비스를 노출해주는 것이 일반적이게 됩니다. :) 

이해가 어려우신 부분이나 연관하여 궁금한 내용이 있다면 알려주세요!

조훈 드림. 

안근창님의 프로필

안근창

질문자

2021.06.20

와 빠른 답변 감사합니다! 

열공을 위해 책도 구매했습니다~ 책에 대한 질문을 드릴지도 모르겠습니다 ㅎ

좋은 강의 감사합니다

별말씀을요~^^ 도움이 되셨다니 다행이네요.

그리고 죄송하게도 책에 대한 것은 출판사에 문의 부탁드려요 ㅠㅠ  제가 몸이 하나라서요 흑흑

0

eoeogudgud님의 프로필

eoeogudgud

2021.09.27

너무 좋은 질문과 답변이군요 잘 읽었습니다 감사합니다.