본문 바로가기

Docker & Kubenetes

쿠버네티스 파드 네트워킹

파드 네트워크 구조

- 쿠버네티스는 도커와 다르게 파드 단위로 컨테이너를 관리하기 때문에 하나의 파드에 속한 컨테이너들은 같은 IP를 갖게됩니다.

- 파드에 속한 컨테이너들은 veth0 하나를 공유합니다.

- 파드의 veth0은 pause 컨테이너 네트워크 네임스페이스에 속한 장치로, 같은 파드안 다른 컨테이너들은 pause 컨테이너 네트워크 네임스페이스를 공유해 사용합니다.

- pause 컨테이너가 변하지 않으면 사용자 컨테이너들은 재시작 하더라도 veth0에 할당된 IP를 사용하고 반대로, pause 컨테이너에 문제가 생기면 veth0을 이용할 수 없으므로 다른 사용자 컨테이너가 성장이더라도 네트워크 통신을 할 수 없습니다.

- 같은 파드 안의 컨테이너는 로컬 IP 주소로 서로 통신이 가능합니다.

멀티 노드 파드 네트워크 구조

위 그림은 CNI 기반의 멀티 노드 파드 네트워크로 파드 IP가 호스트별로 다른 상태입니다.

- 할당된 파드 IP를 호스트의 인터페이스를 거쳐 다른 호스트로 보내고 받기 위해서는 호스트 네트워크 네임스페이스의 각종 네트워크 기능들인 iptables, 커널 라우팅, 터널링, 브리지 등을 사옹해야 하는데 이 역할을 하는 것이 쿠버네티스 CNI 입니다.

- 라우터/게이트웨이는 특정 CNI가 커널 라우팅 기능과 동적 라우팅 기능으로 외부 라우터에 각 호스트 하우팅을 정의해둔 것으로 외부 라우터를 사용하면 기존 네트워킹 환경을 활용할 수 있다는 장점이 있습니다.

- 하지만, 컨테이너 라우팅까지 고려한 네트워키 설계가 필요하다는 단점이 있습니다.

 

 

 

이미지 출처 : https://arisu1000.tistory.com/27850