標籤:stack 路徑 switch 使用者 擷取 src nbsp logs netns
官方項目目路徑下提供的建立pod時序圖:
簡要描述下:Kuryr-controller作為獨立的進程使用,作為中k8s控制neutron的“信使”,需要和k8s以及neutron都存在互動。建立pod時,請求從使用者到達k8s後,kuryr-controller通過list & watch (pod, service, endpoint)資源來擷取到創始的pod的資訊,在neutron側建立完port後,將port資訊annotate到pod上, 由於neutron-openvswitch-agent實現了租戶的其他訪問資源的建立(包括租戶隔離、同節點、跨節點通訊l),所以這裡只要完成虛擬機器實現的網路功能即可,即建立虛擬設備,配置三層資訊(ip、路由、網關) 註:由於k8s未使用租戶資訊,所以從k8s資源到neutron資源的映射實現時,暫時僅實現了預設租戶,也就是僅對某一個租戶實現了資源的轉換。 kuryr-controller結構圖 Kuryr-cni 結構圖對於kuryr(?k?r??)-cni,只完成了網口的添加和刪除,及三層交換所需資訊
def connect(vif, instance_info, ifname, netns=None):
driver = _get_binding_driver(vif)
os_vif.plug(vif, instance_info)
driver.connect(vif, ifname, netns) # 添加虛擬設備,並加入命名空間,具體裝置實現根據所用driver,如openvswitch
_configure_l3(vif, ifname, netns) # 配置學ip、Mac、路由和網關(openstack管理的vm起動時也會使用dhcp request來擷取對應資訊)
kuryr-kubernetes項目