The Kubernetes networking model is proposed for dealing with four different kinds of communication:
- intraPod or Container-to-Container communication within a Pod
- inter-Pod or Pod-to-Pod communication
- Service-toPod communication
- External-to-Service communication [30]
To achieve these four communication services, Kubernetes only provides the specification of the network model, while the actual implementation is handed over to the Container Network Interface (CNI) plugins .
The key requirements of the Kubernetes network model include
- Pods are IP addressable and must be able to communicate with all other Pods (on the same or different host) without the need for network address translation (NAT)
- all the agents on a host (e.g., Kubelet) are able to communicate with all the Pods on that host. CNI plugins may differ in their architecture but meet the above network rules. Thus, there is a range of CNI plugins that adopt different approaches.
Reference List
- Qi, S., Kulkarni, S. G., & Ramakrishnan, K. K. (2020). Assessing container network interface plugins: Functionality, performance, and scalability. IEEE Transactions on Network and Service Management, 18(1), 656-671.