技術特刊主要刊載品高云諸多技術大咖的技術干貨與技術觀點,與大家一起交流學習云知識。歡迎小伙伴們在留言區提出你們的問題與看法,和技術大咖進行互動!
今天與大家分享知識與觀點的大咖是品高云云架構產品部的工程師——林冬藝。
大咖介紹
林冬藝
從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層基礎能力。將能力開放出去,這是云計算多年來最擅長的技能。
了解更多品高云信息,敬請掃碼添加品高云微信客服小表妹,我們將為您提供貼心到位的企業上云顧問服務。