본문 바로가기
Compute/kubernetis

쿠버네티스 kubernetis 환경에서의 인터페이스 구성 ovs / veth / bridge

by 조청유곽 2025. 4. 7.
반응형

🧱 1. 서버(노드)의 물리 인터페이스 구성

Kubernetes 노드는 일반적으로 다음과 같은 구성을 가질 수 있어:

물리 인터페이스

  • 예: ens3f0, ens3f1, bond0, br_public, br_mgmt, br_tenant 등
  • 이 인터페이스들은 실제 물리 포트이며, bond로 묶이거나 bridge로 연결되어 네트워크 분리를 도와.
  • mtu, hwaddr, ip address, route 정보 등으로 실제 외부와 통신하는 역할을 해.

Bridge 인터페이스

  • 예: br_public, br_mgmt, br_tenant 등
  • 보통 Open vSwitch (OVS)나 Linux Bridge 위에서 동작하고, 가상 인터페이스와 물리 인터페이스를 연결.
  • 물리 네트워크와 가상 네트워크의 다리 역할.

veth (가상 이더넷)

  • Pod나 다른 가상 네트워크 인터페이스의 엔드포인트.
  • 예: vethXXX → Pod 내부 인터페이스와 연결된 한쪽 끝
  • 다른 쪽은 보통 cni0, br-int (OVS bridge), flannel.1 등과 연결됨

📦 2. Pod의 인터페이스 구성

Kubernetes에서 Pod가 생성될 때 CNI 플러그인이 네트워크를 세팅함. 가장 기본적인 흐름은 다음과 같아.

기본 CNI 동작 (예: Flannel, Calico, Cilium 등)

흐름:

[Pod eth0] <---> [veth pair] <---> [bridge (예: cni0 or br-int)] <---> [물리 NIC or overlay (vxlan)]
  • Pod 내부엔 eth0이라는 기본 인터페이스가 생김 (IP는 클러스터 내부용)
  • Pod의 eth0 ↔ veth ↔ 노드의 브리지 ↔ 물리 NIC
  • 브리지에서 나온 패킷은 필요에 따라 VXLAN이나 IP-in-IP, WireGuard 등을 타고 다른 노드로 전달됨

🌐 예시 흐름: curl from Pod

  1. Pod에서 외부로 curl 요청을 보냄
  2. Pod의 eth0 → veth → cni0 (또는 OVS의 br-int) → flannel.1 (VXLAN) → 물리 NIC (ensX, bondX)
  3. 물리 NIC에서 외부 라우터나 인터넷으로 패킷 전달

반대로 들어오는 응답도 이 경로를 그대로 따라오지.


🔍 네트워크 구성 요약 (비주얼)


🎯 참고로,

  • 네트워크 구성을 직접 보려면:
ip link
ip addr
brctl show  # bridge-utils 설치 필요
ovs-vsctl show  # OVS인 경우
  • Pod 안에서 IP 확인:
kubectl exec -it <pod> -- ip a
반응형