天天看點

一張圖看懂k8s flannel網路

二進制部署flannel插件,沒有部署cni插件,需要在flannel配置檔案指定生成docker網段,然後在docker.service中指定預定義網段,這樣docker0會和flannel處于同一個網段,flanneld會在etcd中給每個node配置設定一個子網段,然後docker0在此子網段中配置設定pod ip。這樣保證不同node上的任意一個pod 其ip都不會沖突。

一張圖看懂k8s flannel網路

kubeadm部署k8s,使用yaml部署flannel網絡,已經預設安裝cni插件,cni插件的作用其實就是代替docker0的作用。是以docker0的網絡就無所謂沖突不沖突,但是cni隻保證通過k8s建立的pod 網絡配置設定,如果docker自身建立,不會遵守此規則。

一張圖看懂k8s flannel網路
一張圖看懂k8s flannel網路