
현재까지 구축한 멀티-테넌트 프로젝트의 네트워크 흐름에 대해 정리해보고 도식화 해보았습니다.
현재 구축한 멀티-테넌트 프로젝트의 아키텍처 입니다. Users(클라이언트)가 테넌트 서버로 네트워크 통신을 보냈을 때 네트워크의 흐름을 패킷의 목적지 정보와 함께 정리해보겠습니다.


<Public IP>:<외부 포트> 주소를 가지고 가정용 모뎀에 접근<홈랩 내부 IP>:<로컬포트> 로 포트포워딩<홈랩 내부 IP>:<로컬 포트><홈랩 내부 IP>:<nodePort> 에서 <파드 고유 IP>:<targetPort> 로 변환<파드 고유 IP>:<targetPort><파드 고유 IP>:<targetPort>
네트워크 관리자 페이지 내의 포트포워딩 항목입니다.지난번 포스팅에서는 아키텍처만 보았을 때 네트워크 흐름이 간단할 줄 알았습니다만,, 실제로 패킷이 어떠한 목적지 정보를 가지고 테넌트 서버(파드)로 도달하는지를 고민해보니 헷갈리는 점이 너무나 많았던 것 같습니다. 이론으로 네트워크의 흐름을 알게 되었으니, 조만간 아래의 명령어로 iptables 를 분석해보는 시간을 갖겠습니다.
sudo iptables -t nat -L -n | <포트 번호>
DNAT (Destination NAT) 기록KUBE-SERVICES & KUBE-NODEPORTS 체인KUBE-SERVICES: Cluster IP 로 들어오는 내부 트래픽을 처리하는 규칙들KUBE-NODEPORTS: 외부에서 nodePort 로 들어오는 트래픽을 낚아채는 규칙들Load Balancing 로직iptables 는 패킷을 어느 파드로 보낼지 결정함statistic mode random probability 0.50000 같은 문구가 있다면, “패킷을 50% 확률로 이 파드에, 나머지 50%는 저 파드에 보내라” 라는 설정을 의미함