기본 구조: 노드 간 통신이란?
Kubernetes에서 Pod는 어떤 노드에든 스케줄될 수 있으므로, Pod 간 통신을 위해 노드 간 네트워크 연결은 필수다.
[Node A] <-----> [Node B] <-----> [Node C]
| | |
[Pod1] [Pod2] [Pod3]
Kubernetes 기본 통신 원칙 (Container Network Model)
- 모든 Pod는 고유한 IP를 가진다.
- Pod 간 통신은 NAT 없이 가능해야 한다.
- 노드 → Pod 통신도 NAT 없이 가능해야 한다.
즉, Pod1(Node A) → Pod2(Node B) 간 통신도 직접 IP 기반으로 이루어져야 함.
실제 통신 처리 방식
1. CNI 플러그인에 의한 처리
| 플러그인 | 방식 |
|---|
| Calico | BGP, VXLAN, IP-in-IP |
| Flannel | VXLAN, host-gw |
| Cilium | eBPF 기반 overlay/underlay |
| Weave | VXLAN 기반 overlay |
2. Overlay vs Underlay 방식
| 구분 | 설명 | 예시 |
|---|
| Overlay | VXLAN 등으로 가상 터널 구성 | Flannel(VXLAN), Calico(VXLAN) |
| Underlay | 물리 네트워크에서 직접 라우팅 | Calico(BGP), Cilium direct routing |
예시: Calico with IP-in-IP
- Node A의 Pod가 Node B의 Pod로 패킷 전송
- Calico가 IP-in-IP 터널로 캡슐화
- Node B에서 패킷을 디캡슐화하여 대상 Pod에 전달
Pod 간 통신 흐름 요약
[Pod A - 10.x.x.2] (Node1)
|
| → Pod B (10.x.x3)로 통신 시도
v
CNI Plugin이 라우팅 결정:
- 터널 경유 (VXLAN, IP-in-IP)
- 또는 BGP 기반 직접 경로 광고
|
v
[Node2 수신 후 처리]
|
v
[Pod B - 10.x.x.3] 수신
방화벽/보안 설정 주의사항
- 노드 간 모든 포트가 열려 있어야 함
- 클라우드 환경에서는 Security Group, VPC 라우팅 설정 필요
요약
| 항목 | 설명 |
|---|
| 통신 기본 | Pod는 IP 기반 통신, 노드 간 NAT 없이 통신 가능해야 함 |
| CNI 역할 | 노드 간 라우팅/터널링 구성 |
| Overlay 방식 | VXLAN/IP-in-IP 등으로 가상 네트워크 구성 |
| Underlay 방식 | 실제 네트워크 라우팅 설정 (BGP 등) |
| 필수 조건 | 노드 간 네트워크 연결 및 포트 개방 |