Container Network

컨테이너 네트워킹은 가상 인터페이스와 CNI가 만든다

Docker 단일 호스트에서는 bridge와 veth pair가 중심이고, Kubernetes에서는 CNI 플러그인이 Pod 간 직접 통신 모델을 구현한다.

Docker bridge는 컨테이너 veth를 호스트 bridge에 연결한다
Kubernetes는 Pod와 Node가 NAT 없이 서로 통신한다는 모델을 전제한다
Service는 변하는 Pod IP 앞에 안정적인 가상 엔드포인트를 제공한다
Docker bridge

단일 호스트 NAT 흐름

container eth0172.17.0.2
veth peerhost namespace
docker0 bridge컨테이너 veth를 하나의 L2 bridge에 묶는다.
iptables / NAT외부 통신과 포트 게시에 NAT 규칙이 사용된다.
Kubernetes CNI

클러스터 Pod 네트워크

Pod A10.244.1.12
Pod B10.244.2.21
CNI pluginFlannel, Calico, Cilium 등이 라우팅, overlay, policy를 구현한다.
Pod IP modelPod가 보는 자기 IP와 다른 Pod가 보는 IP가 같다.
Service web안정적인 DNS 이름과 ClusterIP를 제공한다.selector: app=web

Endpoint Pods

web-1app=web
web-2app=web
web-3app=web