经过这些日子的连载,我们对容器网络终于有了基本的概念。让我们做一个简短的小结:
- Docker引擎拉起的容器,本身会有一个虚拟的网卡,连接到宿主机上的Linux Bridge。第三方可以通过CNM规范为Docker引擎开发网络相关的插件;
- Kubernetes的网络模型与Docker不同,它的基本入网端点(End Point)单位为Pod,Pod运行在Node上。
- Kubernetes网络需要遵循的基本规则是,每个Pod无论是访问同一个Node里面的其他Pod,还是访问其他Node上的Pod,都不需要经过NAT。
- Kubernetes本身没有实现任何网络的功能,需要安装插件实现容器入网。插件需要遵守CNI规范。
- CNI插件本质上是一个可执行程序,能够实现add、del、check和version四种命令。Kubelet在创建Pod时,会以命令行参数的方式调用这个可执行程序,传入的参数为add命令,以及其他网络相关的配置。类似地,Kubelet将Pod销毁时也会调用del命令,让CNI插件释放这个Pod占用的资源。
预告一下,从下一期我们开始分析具体的CNI插件的实现,并且每期最后会有吸引大家的内容,请大家不要错过!