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 중 하나입니다.