-
首先最主要的是現有的開源方案很難滿足我們客戶的需求,例如子網劃分,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 後即使是小包也可以打滿萬兆網卡,因此性能方面還是很有前途的。
朋友會在“發現-看一看”看到你“在看”的內容