華文網

技術特刊|一個SDNer眼中的Docker

技術特刊主要刊載品高雲諸多技術大咖的技術乾貨與技術觀點,與大家一起交流學習雲知識。歡迎小夥伴們在留言區提出你們的問題與看法,和技術大咖進行互動!

今天與大家分享知識與觀點的大咖是品高云云架構產品部的工程師——林冬藝。

大咖介紹

林冬藝

從SDN概念誕生來一直在關注和研究,目前在BingoCloud SDN雲網路團隊任職,主要負責雲網路、雲網路安全、NFV、高性能雲網路等的架構與設計。目前,BingoCloudOS產品的SDN相關功能主要來自林冬藝所在團隊 。

在不少的交流中,我常常被問起一個問題:“你們的SDN雲網路怎麼支援Docker?”近幾年Docker的輕量化,快速部署的優勢,得到了很多企業用戶的青睞。甚至有不少人,會拿容器技術與傳統的虛擬化進行多維度的PK,當然這樣的PK是沒有結果的。技術活幹久了,很明白一個道理,沒有一個技術能解決所有的問題。

Docker的發展對雲計算確實帶來不少衝擊,前不久的時速雲,Daocloud,蜂巢雲等存容器技術雲更是火紅一時。但是Docker自身的底層架構未完善,導致發展存在很多瓶頸。我們一直以來的觀點是不應該把虛擬化與容器放在對立面看待。雲計算IaaS層有足夠的能力給Docker提供很好的支撐,Docker應該更多地考慮如何發揮自身的輕和快的優勢,底層網路問題應該交給雲平臺處理。

這是我們面對Docker技術或容器技術該有的態度:“擁抱取暖,整合創新”。

我們需要給Docker一個位置,在雲計算這樣一個層次化非常清晰的架構體系中,Docker或容器應該放在什麼位置?

如下圖所示:

圖中,橙色部分就是容器在雲中的位置。

我們先看第一個,容器和虛擬化相容平衡,容器和虛擬機器一樣可以使用雲平臺提供的計算,存儲,網路資源。這樣的方案在很多項目中,被用於廣泛接受。實際專案中,使用者考慮的情況絕對不是單一需求的。比方說使用者的大資料業務需要高性能資源,同時需要一些羽量級的應用服務等。容器化的性能基本接近物理機性能,我們認為大資料的業務,可以放在容器中運行。
此外一些羽量級的應用服務,他們的剛性需求是高可用、靈活遷移,性能需求低。這樣的業務放在kvm虛擬化中運行更為合適。SDN雲網路負責支撐兩者的網路業務。這樣的方案,完全發揮的虛擬化與容器技術的優點。

說到這裡,應該很多人會說Docker呢?Docker in VM是一個大課題。Docker集群運行在VMs上,Docker就需要自管網路。Docker的網路難題也由此而生。前段時間,我們在騰訊黑石雲平臺上部署我們自己雲,那一段時間,我深深明白Docker網路的痛苦。雲平臺的網路是存在很多限制了,如Port-mac綁定,mac-ip綁定,ARP代理等。目前縱觀所有的Docker的網路解決方案中,只有Overly類型的網路能在雲上正常使用。Overly的性能消耗是不可忽視的,此外Overlay的傳輸資料是無法被雲平臺的安全設備監控的。這樣確實帶來不少問題。但不可否認的是,即使存在潛在問題,Docker in VM依然受到廣泛的關注與認同。雲平臺提供的ECS服務占了很大一部分功勞。ECS服務讓Docker的集群生命週期管理變得非常簡單。ECR彈性容器鏡像倉庫實現不同租戶有不同的鏡像庫使用權限,在私有雲場景中,非常適合。

我先來總結一下Docker in VM的存在的問題:

1. Docker集群的Overlay網路消耗大,路由的網路雲網路限制。

2. Docker集群的Overlay網路通訊安全設備難以識別。

3. Docker集群的網路缺乏監控手段。

4. Docker in VM經過一層虛擬化之後,喪失了Docker本身高效的特性。

我們一步一步來,先看網路問題。我們做一個大膽的假設,如果SDN雲網路能管理Docker in VM網路那就是基本可以擺脫Overlay的問題。SDN需要把手伸進Docker in VM。這時候的想法很清晰了,我們SDN雲網路提供彈性虛擬化網卡的能力,一台VM可以綁定多個vNIC。我們把vNic直接塞給Docker in VM。如下圖:

看到這個圖,我相信大家一定很興奮,包括我自己。這就是Docker in VM結合雲網路的方式。Docker可以使用雲網路提供的安全性群組,VPC,Gateway、Route、ACL、Vpcpeering等網路功能,並且是Underlay網路,安全設備可以監控Docker in VM的流量。可以使用與VM不同的VPC,實現業務管理分離。Docker in VM無需自管網路了。雲平臺可以單獨針對Docker in VM做流量監控。很慶倖的是,品高雲最新版本已經支持vNic passthrough for Docker in VM。

還有最後一個問題,Docker in VM的性能損耗。經過一層虛擬化之後,Docker in VM的發揮不出Docker高效的特性。我們回想一下Docker為什麼要in VM?因為ECS服務,通過VM創建Docker集群。在上文中我們提到過在品高雲中,容器與VM是平等關係。最初設計的架構,其實我們已經支持Docker in CM。結合vNic passthrough for Docker in CM的能力,ECS服務的性能問題能夠得到很好的解決。

雲計算應該持有足夠開放的態度,還是那句話“擁抱取暖,整合創新”。Docker 絕對不是顛覆雲計算的技術。我們也不應該把Docker放在我們的對立面。大家可以看到,品高雲提供的VM/CM平等化、vNic passthrough for Docker 以及 Docker in CM的功能,他們本身的設計是與本身雲計算的架構沒有任何衝突性,都是沿用IaaS層基礎能力。將能力開放出去,這是雲計算多年來最擅長的技能。

歡迎想提出問題的童鞋在評論區留言,我們會邀請技術大咖為您進行解答噢!

相關閱讀:

品高雲SDN概述 | 品高雲公開課

IT屆這只風靡全球的鯨魚你不會還不知道吧?

技術乾貨 | 品高雲對Docker的支援

品高公開課 | 基於Docker容器的微服務架構實踐

更多雲計算與大資料行業精彩資訊,請關注懂企業的品高雲(bingocloud2010)

我深深明白Docker網路的痛苦。雲平臺的網路是存在很多限制了,如Port-mac綁定,mac-ip綁定,ARP代理等。目前縱觀所有的Docker的網路解決方案中,只有Overly類型的網路能在雲上正常使用。Overly的性能消耗是不可忽視的,此外Overlay的傳輸資料是無法被雲平臺的安全設備監控的。這樣確實帶來不少問題。但不可否認的是,即使存在潛在問題,Docker in VM依然受到廣泛的關注與認同。雲平臺提供的ECS服務占了很大一部分功勞。ECS服務讓Docker的集群生命週期管理變得非常簡單。ECR彈性容器鏡像倉庫實現不同租戶有不同的鏡像庫使用權限,在私有雲場景中,非常適合。

我先來總結一下Docker in VM的存在的問題:

1. Docker集群的Overlay網路消耗大,路由的網路雲網路限制。

2. Docker集群的Overlay網路通訊安全設備難以識別。

3. Docker集群的網路缺乏監控手段。

4. Docker in VM經過一層虛擬化之後,喪失了Docker本身高效的特性。

我們一步一步來,先看網路問題。我們做一個大膽的假設,如果SDN雲網路能管理Docker in VM網路那就是基本可以擺脫Overlay的問題。SDN需要把手伸進Docker in VM。這時候的想法很清晰了,我們SDN雲網路提供彈性虛擬化網卡的能力,一台VM可以綁定多個vNIC。我們把vNic直接塞給Docker in VM。如下圖:

看到這個圖,我相信大家一定很興奮,包括我自己。這就是Docker in VM結合雲網路的方式。Docker可以使用雲網路提供的安全性群組,VPC,Gateway、Route、ACL、Vpcpeering等網路功能,並且是Underlay網路,安全設備可以監控Docker in VM的流量。可以使用與VM不同的VPC,實現業務管理分離。Docker in VM無需自管網路了。雲平臺可以單獨針對Docker in VM做流量監控。很慶倖的是,品高雲最新版本已經支持vNic passthrough for Docker in VM。

還有最後一個問題,Docker in VM的性能損耗。經過一層虛擬化之後,Docker in VM的發揮不出Docker高效的特性。我們回想一下Docker為什麼要in VM?因為ECS服務,通過VM創建Docker集群。在上文中我們提到過在品高雲中,容器與VM是平等關係。最初設計的架構,其實我們已經支持Docker in CM。結合vNic passthrough for Docker in CM的能力,ECS服務的性能問題能夠得到很好的解決。

雲計算應該持有足夠開放的態度,還是那句話“擁抱取暖,整合創新”。Docker 絕對不是顛覆雲計算的技術。我們也不應該把Docker放在我們的對立面。大家可以看到,品高雲提供的VM/CM平等化、vNic passthrough for Docker 以及 Docker in CM的功能,他們本身的設計是與本身雲計算的架構沒有任何衝突性,都是沿用IaaS層基礎能力。將能力開放出去,這是雲計算多年來最擅長的技能。

歡迎想提出問題的童鞋在評論區留言,我們會邀請技術大咖為您進行解答噢!

相關閱讀:

品高雲SDN概述 | 品高雲公開課

IT屆這只風靡全球的鯨魚你不會還不知道吧?

技術乾貨 | 品高雲對Docker的支援

品高公開課 | 基於Docker容器的微服務架構實踐

更多雲計算與大資料行業精彩資訊,請關注懂企業的品高雲(bingocloud2010)