https://ronaknathani.com/blog/2020/08/how-a-kubernetes-pod-gets-an-ip-address/
Flannel:오버레이 네트워크 공급자(overlay network provider)
CNI (Contanier Network Interface):
CRI (Container Runtime Interface) : kubelet이 다른 컨테이너 런타임을 사용할 수 있도록하는 플러그인 인터페이스
동작 순서
1. kube-controller-manager
Kubernetes 클러스터 관리자는 kubelet, 컨테이너 런타임, 네트워크 공급자 에이전트(flannel)를 구성 및 설치하고 각 노드에 CNI 플러그인을 배포
네트워크 공급자 에이전트(flannel)이 시작되면, 데몬으로 뜬다.
네트워크 공급자 에이전트(flannel)가 시작되면 CNI 구성이 생성
노드에서 포드가 예약되면 kubelet은 CRI 플러그인을 호출하여 포드를 생성
containerd의 경우 Containerd CRI 플러그인은 CNI 구성에 지정된 CNI 플러그인을 호출하여 포드 네트워크를 구성
이 모든 결과로 포드가 IP 주소
각 노드에 vxlan디바이스와 일부 라우팅 테이블 항목을 생성
포드가 생성되면 전체 클러스터에 모든 포드에 대한 경로를 배포하고 이러한 경로를 통해 포드가 IP 주소를 통해 서로 연결할 수 있습니다.
패킷은 vxlan을 통과하고 UDP패킷으로 캡슐화하며, 캡슐된 패킷은 검색되어 대상 포드로 보내짐