1、Linux 物理网卡与虚拟网卡
linux内核会无差别的对待物理网卡和虚拟网卡,唯一的不同是:物理网卡支持以比特流的方式传输数据,虚拟网卡则直接在内存中拷贝数据,因而虚拟网卡不支持向服务器外传送数据,虚拟网卡主要有三类:
(1)tun:虚拟三层网卡,没有MAC地址,提供用户空间文件描述符仅用作tun应用空间程序像操作文件系统一样读取或写入数据,主要用于建立IP隧道
(2)tap:虚拟二层网卡,有MAC地址,可用于连接brdige,或者提供用户空间文件描述符像操作文件系统一样读取或写入数据,可用于建立二层隧道
(3)veth:虚拟的标准以太网卡,与tun/tap不同,成对出现,一端相互连接,一端连接内核网络协议栈。
2、K8S网络模型
(1)地址分配:每个POD内的多个容器共享共同的网络空间,类似1台虚机,以pod为单位分配集群内唯一的网络地址
(2)内网:集群内的多个POD之间,无论是否处于同一个node节点内,均能网络互通
(3)外网:集群内的pod的以service的形式对外提供服务,要求通过service地址能够被外部地址访问。
3、Calico解决方案
(1)