青云QingCloud 為基于 VM 部署的容器應用提供了一套簡便易行的網絡配置方案——SDN 網絡直通服務 (SDN Passthrough)圣拄。相比于傳統方案绅你,SDN網絡直通服務將大幅提升容器應用的網絡性能,并降低配置與維護的操作難度凑队。
眾所周知则果,網絡對于容器來說至關重要。但容器并沒有解決好自身的網絡問題。早期西壮,容器只有單機的網絡解決方案遗增,在 1.19 版本之后才引入原生的 Overlay 網絡解決方案。
下面款青,我們以基于虛擬主機部署Docker為例做修,看看傳統網絡方案中的問題所在。
首先可都,在虛擬主機的網絡之上缓待,Docker 系統還需要自己實現如下兩點:
在虛擬主機內部實現虛擬網絡蚓耽,以聯通各 Docker 實例渠牲。
常用的實現方式是通過使用 Docker 提供的 Bridge 和 Overlay 網絡插件,前者通過地址轉換和路由連通私有網絡步悠,后者通過 Vxlan 隧道方式签杈,構建一層 Overlay network。
實現一些復雜的網絡功能鼎兽。
除了聯通 Docker 實例答姥,還需要向 Docker 實例提供公網 IP,負載均衡器和防火墻等功能谚咬,這些都需要自主實現鹦付,而無法復用云平臺提供的相應功能。
其次择卦,通過以上這種方式部署 Docker敲长,雖然可以實現基本的功能,但是存在兩個重要挑戰(zhàn):
性能差秉继。
這種使用 Docker Overlay 的方案會帶來近 3/4 的性能損耗祈噪,如果算上對外提供服務所需要的地址轉換帶來的性能損失,整體性能損失將更為巨大尚辑。
PS:測試環(huán)境中辑鲤,虛擬主機之間: 帶寬 9Gbps,而虛擬主機內使用 Docker overlay 插件的 Docker 實例之間杠茬,帶寬下降為 2.3Gbps 月褥。
部署復雜。
目前主流的 Docker 管理平臺瓢喉,比如 K8S宁赤,使用者如果想構建一套網絡方案,需要精通Linux提供的各種高級網絡功能灯荧,這也為用戶設置了較高的技術門檻礁击。特別是對專注于業(yè)務開發(fā)的 Docker 用戶而言,這類操作往往顯得過于復雜。
所以哆窿,雖然容器技術正在逐步被大家認可與應用链烈,但其網絡性能以及配置的復雜程度一直都在被大家所詬病。
其實挚躯,上述問題的根源在于云平臺和 Docker 平臺都有自己的虛擬化網絡實現方案强衡,二者功能重疊,使用時會相互嵌套码荔。
那么漩勤,『SDN 網絡直通服務』是如何解決性能以及部署復雜性的問題呢?
簡單來說缩搅,SDN 網絡直通就是讓用戶的 Docker 直接使用云平臺的 SDN 能力越败,避免兩層網絡嵌套,從而達到提高性能硼瓣,和簡化配置的效果究飞。
其包含兩大組件:「網卡」管理和「Hostnic」插件。
網卡管理堂鲤。
通過提供網卡接口亿傅,讓虛擬主機能夠掛載多個網卡。這些網卡可以屬于相同或者不同的網絡瘟栖,同時每個網卡能夠管理自己的私網 IP葵擎,公網 IP,負載均衡器和防火墻等功能半哟。
Hostnic 插件酬滤。
這是青云QingCloud 自主開發(fā)的一款 Docker 網絡插件。在啟動 Docker 實例的時候镜沽,通過該插件敏晤,可以將虛擬主機上的綁定的多個網卡一一掛載到 Docker 實例上, 并可以配置 IP 地址和路由。啟動之后缅茉,Docker 實例就加入了云平臺 SDN 提供的網絡嘴脾,能夠使用云平臺所有的網絡功能。
PS:希云cSphere 也開源了一款基于 QingCloud SDN 網絡直通方案的插件蔬墩,qingcloud-docker-network译打,相比 Hostnic,這款插件整合了 QingCloud API拇颅,可以在啟動 Docker 的時候奏司,自動創(chuàng)建并掛載網卡,使用起來更方便樟插。 地址:http://github.com/nicescale/qingcloud-docker-network
當用戶選擇使用 SDN 網絡直通服務時韵洋,能夠實現 Docker 直接使用云平臺的 SDN竿刁,避免兩層網絡的重疊,從而達到提高性能和簡化配置的效果搪缨,并支持獨立掛載 EIP食拜、獨立配置防火墻策略(SG)、及掛載為負載均衡 (LB)后端副编,提升對復雜網絡架構的支持能力负甸。
本文轉載自:https://zhuanlan.zhihu.com/p/24902370?refer=qingcloud