ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
在宿主机上在创造一层overlay network.docker0与pod是在同一子网段,每台node flannel0是在同一子网段,pod的的互通flannel主要采用kernel路由表与udp封装去达到这个,一个pod的数据包首先进入到docker0,在每台node上面有一个flanneld进程,他会在内核创建相应的路由表,flannnel0本质上是一个flanneld进程创建的一个tun设备,tun是一个内核实现的软件接口,用来在内核与用户程序中传递数据包,tun主要的工做流程是,将数据包发送到内核,内核查询路由表进行路由,找到flannel0,kernel会发送数据包到flanneld进程上,flanneld进程默认的监听端口是8285,所以会设定udp包的目标端口是8285, docker0之所以能够采用这个网段是因为flanneld为docker0写进了子网配置信息,会总共在userspace与kernel中传递3次,(flannel工作在二层上。)