작성
·
14
1
참고 강의
- Nginx 사용시 마주하게 되는 상황들과 해결 방법
(09:00)
질문
Pod간 통신 시 nginx를 통해서 통신하게 끔 하는게 실무에서 보편적으로 많이 사용하는 방법일까요?
Pod랑 연결된 Service의 DNS를 호출하는 식으로 사용하면 ingress에 추가 설정도 안해도 되고..
nginx를 사용하지 않으니 nginx에 부하도 덜 주고 하는 장점들이 있는 것 같아서요.
감사합니다.
답변 2
0
안녕하세요.
첫 번째 단계는 말씀하신 것 처럼 Nginx를 사용하지 않고, Server를 통해 Pod간의 통신을 하는 겁니다.
이게 가장 편하게 사용하는 형태가 맞고요. 근데 분명 한계도 존재해요.
단순 호출만 생각하면 가장 간단한데, 실무에서는 트래픽을 관리해야 되는 상황들이 생기거든요.
예를 들어 Server->Pod 구조에서는 Pod로 트래픽이 라운드 로빈으로 균등 분산 됩니다.
근데 그러면 부하가 높은 Pod에도 똑같은 양의 트래픽이 들어가게 되요.
하지만 Nginx에는 트래픽 분산을 관리해주는 기능이 있고요.
그래서 Pod -> Nginx -> Pod 구조 쓰게 되면 Nginx에서 여러 Pod들의 부하 상태를 봐가면서 트래픽을 보내는 기능을 사용할 수 있게 됩니다.
하지만 Nginx의 기능에도 한계가 있고요.
더 섬세한 트래픽 관리를 생각하면 Istio를 적용하기도 합니다. 물론 사용방법은 Nginx보다 더 어렵지만 그에 상응하는 좋은 기능들을 제공해줘요.
그래서 결론적으로 말씀드리면, 실무라고해서 처음부터 무거운 툴을 사용할 필요는 없긴 합니다. 내 운영 환경에 복잡도가 낮아서, 요구사항도 적다면 쿠버네티스 기본 기능만으로도 충분하고요.
대규모 환경으로 갈 수록, 요구되는 기능들이 생길 수록 그에 적합한 툴을 써야되는 상황이 생기게 됩니다.
그렇기 때문에 공부하는 입장에서는 닭 잡는 칼로 닭을 잡고, 소 잡는 칼을 써서는 소를 잡을 줄 아는 역량이 필요해요.
일단은 잘 공부하고, 정리해 놓고요. 필요한 상황에 정리해 놓은 내용을 보고 빨리 대응할 수 있는 준비를 한다고 보시면 됩니다 :)
0
안녕하세요, 인프런 AI 인턴입니다. LIT_23님.
Pod 간의 통신 방법에 대한 질문을 주셨군요. Kubernetes 환경에서 Pod 간의 통신은 여러 방식이 존재하며, 다양한 요인에 따라 적절한 방법을 선택할 수 있습니다.
1. Nginx를 통한 통신:
- Nginx는 주로 외부 트래픽을 내부의 여러 서비스로 라우팅하는 Ingress Controller 역할을 합니다.
- Pod 간의 직접적인 통신보다는 외부 요청을 받아들이는 역할로 많이 사용됩니다.
2. Service의 DNS를 활용한 통신:
- Pod 간의 통신에는 Kubernetes Service를 활용하여 ClusterIP (기본 값)로 설정된 Service를 통해서 DNS (ex: <service-name>.<namespace>.svc.cluster.local
) 형식으로 다른 Pod에 접근하는 방법이 있습니다.
- 이는 보통 내부 네트워크에서의 통신에 적합하며, Ingress Controller와 같은 추가 설정이 필요 없다는 장점이 있습니다.
결론:
- Pod 간의 내부 통신만 필요하다면 굳이 Nginx를 거치지 않고 Service를 통한 DNS 방식이 적합할 수 있습니다.
- 이는 네트워크 부하를 줄이고 간결한 구성을 제공하여 실무에서도 자주 사용되는 방법입니다.
추가적으로 Ingress 및 Nginx 설정에 대한 이해가 필요하다면 다음의 관련 질문들과 답변을 참고해 보시길 바랍니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
상세한 답변 덕분에 이해가 한번에 되었습니다!
감사드립니다.
실무에 기반한 좋은 강의 많이 만들어주셔서 감사드립니다.
더 열심히 듣도록 하겠습니다. :)