Calico Pod 통신

Seung·2022년 3월 13일
1

K8S

목록 보기
13/14

동일 노드에서 pod to pod 통신

  • 통신 과정

    pod1의 veth => cali### 인터페이스 => virtual router => cali$$$ 인터페이스 => pod2의 veth

  • 동일 노드 내 pod to pod 통신은 tunl 인터페이스가 관여X

  • cali### 인터페이스의 proxy arp 설정을 통해서, pod는 바라보는 gateway의 mac 주소를 전달 받을 수 있다.


pod에서 외부 통신

  • 통신 과정

    pod1의 veth => cali### 인터페이스 => virtual router => 호스트 인터페이스(eth0) => 외부

  • pod에서 외부로 통신시에는 호스트의 네트워크 인터페이스 IP 주소로 마스커레이딩(출발지 IP로 변경)되어서 외부와 연결된다.
  • calico 기본 설정은 natOutgoing: true 이므로 iptables에 MASQUERAD rule에 의해서 외부와 연결된다.
  • 외부와 통신시에는 tunl 인터페이스가 관여X

다른 노드 간 pod to pod 통신

  • 통신 과정

    pod1의 veth => cali### 인터페이스 => virtual router =>
    host1의 tunl0 인터페이스 => IPIP 터널 => host2의 tunl0 인터페이스 =>
    virtual router => cali$$$ 인터페이스 => pod2의 veth

  • 다른 호스트의 pod와 통신시 IPIP 터널 모드를 통해서 이루어진다.

  • IP in IP: tunl0 인터페이스를 통해 IP header가 추가되어(encapsulation) 다른 노드로 이동 후, tunl0에서 header가 제거되고(decapsulation) 내부의 pod와 통신한다.


Reference

https://www.notion.so/K8S-CNI-Calico-1-POD-b12040ffb62b45d98873cc42c3147dcb

profile
인프라 마스터가 되고 싶어요

0개의 댓글