-
首先最主要的是現有的開源方案很難滿足我們客戶的需求,例如子網劃分,IP固定,QoS,VLAN 隔離,流量映象等等這種在傳統網路裡很常見的功能在絕大部分的開源網路方案裡都是缺失的。造成的結果是真正落地的時候我們會發現沒有一個開源網路方案能用,只能不斷的和網路部、系統部、應用部各個部門扯皮,割捨掉原有的一些網路功能來上容器。我們希望能透過技術的手段豐富現有的容器網路能力,來幫助客戶更順利的落地容器。
-
就是從我們自身維護容器雲的角度來看,容器平臺網路相關的問題是最難排查的。一個網路不通的問題可能會涉及 Pod 網路、CNI、Service、Iptables、IPVS、Ingress、DNS、NetworkPolicy、Loadbalancer 等等多個元件,流量的分散導致故障十分難以排查,並且需要運維人員掌握很多元件的原理。我們希望能夠把網路流量的資料面進行統一,不要再分散到各個元件上,降低維護方面的複雜度。
-
經過調研我們認為 OVN/OVS 這套網路元件功能上比較齊全,畢竟能夠實現 OpenStack 的所有網路功能,那麼對 Kubernetes 的網路來說能力其實是大幅上限溢位的,可以實現很多高階功能。此外 OVS 已經是經久考驗的虛擬交換機,穩定性是很有保證的,效能方面也有各種 DPDK 和硬體加速方案來託底,真正到要效能的時候我們有應對的方案。此外我們瞭解到的一些公有容器雲廠商內部其實也是用的 OVN 來做容器網路,我們也不算第一個烈士。
-
平移 OpenStack 網路的概念和功能到 Kubernetes。OpenStack 的網路已經發展了很多年,很多設計和概念也基本成了 SDN 的標準。我們希望能透過 OVN 不僅僅是引入一些高階功能,還能引入一些比較成熟的網路概念,像 VPC、Subnet、多租戶、FIP、SecurityGroup 等等,從整體上增強 Kubernetes 網路的能力。
-
統一網路的資料平面,我們希望把 Kubernetes 作為網路的控制平面,所有資料平面的功能都能透過 OVN 來實現,包括 Service、DNS、NetworkPolicy 都透過 OVN 來實現,簡化之後的維護工作。
-
盡可能改寫其他開源網路方案的功能。對我們來說也不希望同時支援多個網路外掛,每個客戶都不一樣,這樣對我們成本也很高。我們自己希望有這麼一個跟水桶機一樣的網路方案要的功能都改寫了,還能有些特色,這樣是最好的。
-
盡可能的易於安裝使用。OVN、OVS 這套東西本身的安裝和使用都還是比較複雜,門檻比較高我們希望能進行簡化,降低使用者使用的門檻。方便交付,也方便更好的推廣。
-
IPv6 的支援,這是我們客戶方面比較急迫的一個需求,由於工信部的 IPv6 推廣計劃,對 IPv6 的需求也越來越多,同時借這個機會我們會對 Kube-OVN 現有的子網進行重新的設計,可能會抽象出一個 CRD 來做更複雜的控制。
-
監控 /tracing 工具的整合。傳統網路工程有很多不錯的網路檢測工具例如 IPFIX、sFlow 和 NetFlow,我們未來會將這些工具加進來豐富網路的功能。此外借助流量映象的能力我們也可以做一些應用層的流量分析和監控。
-
效能最佳化和 DPDK 的支援,主要是為了消除客戶對 OVS 效能的擔心。我們和社群內的一些人進行過交流,在使用 DPDK 後即使是小包也可以打滿萬兆網絡卡,因此效能方面還是很有前途的。
朋友會在“發現-看一看”看到你“在看”的內容