kubelet 如何使用flannel這個CNI

如果想了解k8s組件的關係,建議手動使用二進制部署k8s集羣。而網上大多數手動部署k8s集羣是,網絡插件是flannel。而flannel網絡插件卻沒有在kubelet的啓動參數裏。所以就很奇怪。

 

  CNI插件是可執行文件,會被kubelet調用。啓動kubelet --network-plugin=cni,--cni-conf-dir 指定networkconfig配置,默認路徑是:/etc/cni/net.d,並且,--cni-bin-dir 指定plugin可執行文件路徑,默認路徑是:/opt/cni/bin;

 

我們通常說的Flannel(coreos/flannel),其實說的是flanneld。大家都知道Kubernetes是通過CNI標準對接網絡插件的,但是當你去看Flannel(coreos/flannel)的代碼時,並沒有發現它實現了CNI的接口。如果你玩過其他CNI插件,你會知道還有一個二進制文件用來供kubele調用,並且會調用後端的網絡插件。對於Flannel(coreos/flannel)來說,這個二進制文件是什麼呢?git repo在哪裏呢?

這個二進制文件就對應宿主機/etc/cni/net.d/flannel,它的代碼地址是https://github.com/containernetworking/plugins,最可恨的它的名字就叫做flannel,爲啥不類似contiv netplugin對應的contivk8s一樣,取名flannelk8s之類的。

from "https://cloud.tencent.com/developer/article/1096997"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章