CNI - 노드 간 통신

YYY·2025년 5월 14일

기본 구조: 노드 간 통신이란?

Kubernetes에서 Pod는 어떤 노드에든 스케줄될 수 있으므로, Pod 간 통신을 위해 노드 간 네트워크 연결은 필수다.

[Node A] <-----> [Node B] <-----> [Node C]
   |                  |                 |
 [Pod1]            [Pod2]            [Pod3]

Kubernetes 기본 통신 원칙 (Container Network Model)

  1. 모든 Pod는 고유한 IP를 가진다.
  2. Pod 간 통신은 NAT 없이 가능해야 한다.
  3. 노드 → Pod 통신도 NAT 없이 가능해야 한다.

즉, Pod1(Node A) → Pod2(Node B) 간 통신도 직접 IP 기반으로 이루어져야 함.


실제 통신 처리 방식

1. CNI 플러그인에 의한 처리

플러그인방식
CalicoBGP, VXLAN, IP-in-IP
FlannelVXLAN, host-gw
CiliumeBPF 기반 overlay/underlay
WeaveVXLAN 기반 overlay

2. Overlay vs Underlay 방식

구분설명예시
OverlayVXLAN 등으로 가상 터널 구성Flannel(VXLAN), Calico(VXLAN)
Underlay물리 네트워크에서 직접 라우팅Calico(BGP), Cilium direct routing

예시: Calico with IP-in-IP

  1. Node A의 Pod가 Node B의 Pod로 패킷 전송
  2. Calico가 IP-in-IP 터널로 캡슐화
  3. 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 등)
필수 조건노드 간 네트워크 연결 및 포트 개방
profile
무지렁이 탈출기

0개의 댓글