一张图看懂k8s flannel网路

二进制部署flannel插件,没有部署cni插件,需要在flannel配置文件指定生成docker网段,然后在docker.service中指定预定义网段,这样docker0会和flannel处于同一个网段,flanneld会在etcd中给每个node分配一个子网段,然后docker0在此子网段中分配pod ip。这样保证不同node上的任意一个pod 其ip都不会冲突。
一张图看懂k8s flannel网路_第1张图片
kubeadm部署k8s,使用yaml部署flannel网络,已经默认安装cni插件,cni插件的作用其实就是代替docker0的作用。所以docker0的网络就无所谓冲突不冲突,但是cni只保证通过k8s创建的pod 网络分配,如果docker自身创建,不会遵守此规则。

一张图看懂k8s flannel网路_第2张图片
一张图看懂k8s flannel网路_第3张图片

你可能感兴趣的:(k8s,flannel,Docker)