在Kube-OVN社群小夥伴的共同努力下,Kube-OVN v1.10.0於五月份正式釋出。Kube-OVN v1.10.0版本中,我們一如既往地對Kube-OVN 的功能、效能、穩定性和易用性進行了大幅強化。包括 新增Windows 節點的支援,使用者自定義子網級 ACL,EIP/SNAT/DNAT CRD 拆分,Submariner 整合,DPDK 支援,Kubevirt VM 靜態 IP 等 10+ 項新功能上線。同時我們對控制平面效能進行了多項優化,大幅提升了大規模叢集的網路建立和更新速度。
Kube-OVN v1.10.0又有哪些新的能力,快來了解一下吧!
Windows 支援
在 v1.10.0 之前版本的 Kube-OVN 受限於 OVS/OVN 對 Windows 的支援問題,只能在 Linux 節點上執行。在 1.10.0 中我們對 OVS/OVN 的 Windows 程式碼做了部分調整,使其能更好的支援 Windows 的執行。在 Windows Server 2019 並支援 Hyper-V 的環境下,可以使用 Kube-OVN Vxlan 的 Overlay 網路模式來實現 Windows 節點和 Linux 節點容器網路的統一管理。
當前版本支援 IPv4 的 Overlay 網路,未來我們將不斷完善 Windows 容器網路,將雙棧,Underlay 等高階功能帶入 Windows 網路,歡迎大家使用。
使用者自定義子網ACL
Kubernetes 內建的 Networkpolicy 規則在一些針對網路安全需要進行細粒度或分層控制的場景並不適用。此外 NetworkPolicy 不支援優先順序設定,在一些複雜場景下規則設定的複雜度上升。為了實現更豐富的安全控制能力,在這個版本中我們在子網新增了 ACL 欄位,使用者可以按照自己的需求編寫符合 OVN 流表規範的 ACL 規則。如下所示:
使用該規則,使用者可以根據 L2~L4 的任意欄位和布林表示式進行流量匹配,並支援規則的優先順序,可以不限於 NetworkPolicy 的限制,用極其靈活的方式進行規則設定。
Kubevirt 功能強化
在這個版本中我們持續對根據 Kubevirt 場景下對網路的需求,完善 Kube-OVN 對雲原生虛擬化場景的優化。
VM 固定地址
在這個版本中我們對 Kubevirt 下 VM instance 的地址分配策略才用了和 StatefulSet 類似的策略,在 VM 第一次分配地址時隨機分配,之後 VM 啟停,更新過程中都會複用啟動時分配的地址,達到 VM 生命週期內的地址固定,更適合虛擬化的使用習慣。
DPDK 支援
儘管上游 KubeVirt 還沒有對 OVS-DPDK 型別網路的支援,但是在 Kube-OVN 社群內很多使用者獨立開發了 KubeVirt 對 OVS-DPDK 的支援,同時也開發了 Kube-OVN 內對 OVS-DPDK 的支援,這樣即使是普通網路卡也可以通過 OVS-DPDK 使用者態的加速能力來增強 VM 內的網路吞吐能力。
DHCP 支援
Kubevirt 內建的 DHCP 功能無法在 SR-IOV 或者 OVS-DPDK 模式下工作,在這個版本里我們通過在子網中增加 DHCP 相關設定,利用 OVN 自身的功能使用流表實現了 DHCP Server 的功能,方便虛擬化使用者的使用
Submariner 整合
之前的版本中 Kube-OVN 支援使用 ovn-ic 來做多叢集的互聯,從 1.10.0 開始又支援使用 Submariner 進行多叢集互聯。Submariner 可以在 Pod 網路互通的基礎上提供 Service 和 DNS 的互通以及流量的加密,並可支援 Kube-OVN 和其他 CNI 的互通。對叢集互聯能力有高階需求的使用者可以考慮嘗試基於Submariner 的互聯方案。
控制平面效能提升
藉助社群小夥伴提供的大規模測試環境,我們在 15K 真實 Pod 的環境下驗證了 Kube-OVN 的大規模效能,並針對各個瓶頸點進行了效能優化。
● IPAM 優化,初始化 10K Pod 所花時間從 527s 降至 29s
● kube-ovn-controller port-group 檢查開銷複雜度從 O(n) 降為 O(1),n 為叢集節點數量
● kube-ovn-cni QoS 檢查開銷複雜度從 O(n) 降為 O(1),n 為節點上 Pod 數量
● EIP 和 SNAT 功能可關閉,提升 1 倍建立速度
● 使用路由器策略取代靜態路由,OVN 相關流表數量從每個 Pod 一條規則降為每個節點一條規則
● 升級 OVN 和 OVS 降低呼叫 OVN 延遲
其他功能
● EIP/SNAT/DNAT CRD 拆分
● 無網路中斷升級
● Namespace 繫結多個子網
● VPC 內的對等連線
● Webhook 功能強化