1. 程式人生 > >kuryr-kubernetes項目

kuryr-kubernetes項目

control net neu driver ota ber 網絡 獨立 暫時

官方項目目路徑下提供的創建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項目