flannel详解

分flanneld和flannel cni两部分
flanneld在k8s每个node上都运行一份
启动时创建本机的vxlan设备


image.png

负责监听k8s的node变化 并设置到其他node的路由。


image.png

flannel cni是个可执行文件,k8s配置好使用flannel,当k8s创建pod时就会调用flannel cni,flannel cni只是把配置翻译一下传给bridge cni。
bridge cni一样是个可执行文件,他主要工作是创建容器eth,并挂载cni0上,还可以设置容器网络空间的路由等功能,在flannel场景下,这些配置信息都来之flannel cni。

flanneld和flannel cni的分工不同,一个负责node之间的通信,一个负责容器在node内的通信(包括容器间和到vxlan设备的通信)。
或者按动态和静态的配置分也行,cni plugin负责静态配置,flanneld则需要监听配置变化,实现动态配置。

其余的k8s网络实现也是这么分工的,分cni plugin和node上运行的daemon,复杂点的自己再搞一套中控,配置些网络层面的功能,flannel的配置都是来自k8s,没有自己的中控。

你可能感兴趣的:(flannel详解)