Kubernetes/Study
[K8s] 쿠버네티스에서 pod들이 서로 다른 가상 L2에 있는데 통신 되는 이유? (비오버레이 네트워크)
lumination
2025. 6. 19. 21:11
비오버레이 네트워크: Calico(BGP 모드)
Calico가 BGP 모드로 동작하면, VXLAN 같은 오버레이 네트워크 없이도 Pod 간 통신이 됩니다.
✅ 왜냐하면...
1. 각 노드가 BGP를 통해 서로의 Pod IP 대역 정보를 공유합니다.
- 예:
- Node1: 10.244.1.0/24
- Node2: 10.244.2.0/24
- BGP로 서로 "이 IP는 여기 있어" 하고 알려줍니다.
2. 라우팅 테이블에 해당 경로가 등록됩니다.
- Node1이 10.244.2.5에 트래픽 보내려 하면
→ Node2로 가는 L3 경로가 있어서
→ 터널 없이 직접 IP 패킷을 전송할 수 있어요.
🎯 오버레이와 BGP 방식 비교
항목오버레이 방식 (VXLAN 등)BGP 라우팅 방식
캡슐화 | VXLAN/IPIP로 감쌈 | ❌ 없음 (L3 직접 전송) |
성능 | 캡슐화/디캡슐화 오버헤드 있음 | ✅ 빠름 (터널 없음) |
네트워크 의존성 | 물리망과 분리 가능 | 물리망이 Pod CIDR 경로 수용 가능해야 함 |
구현 난이도 | 쉬움 (기본 설정으로 잘 됨) | BGP 구성 약간 복잡함 |
✅ Calico BGP 모드는 오버레이 없이 통신이 되는 방식
- 노드 간 직접 IP 라우팅을 통해 Pod-to-Pod 통신
- 터널이 없으므로 성능 유리
- 물리 네트워크가 "내부 Pod IP CIDR을 라우팅 가능하게 설계돼야 함"
🔎 예: ip route 확인 시
bash
복사편집
$ ip route
10.244.2.0/24 via 192.168.100.102 dev eth0 # Node2로 직접 가는 경로
결론
네! BGP 라우팅을 쓰면 VXLAN 없이도 Pod 간 통신이 가능해집니다.
Calico는 이걸 가능하게 해주는 유일한 고급 CNI 중 하나입니다.