授人以魚不如授人以漁——時速云Docker&Kubernetes集錦
作者:佚名
2015年7月19日,北京——Docker & Kubernetes技術(shù)沙龍在海置創(chuàng)投大廈6層會議室舉行,本次活動由時速云主辦,來自各行業(yè)對Docker和Kubernetes感興趣的約130名技術(shù)人參加了此次活動。
2015年7月19日,北京——Docker & Kubernetes技術(shù)沙龍在海置創(chuàng)投大廈6層會議室舉行,本次活動由時速云主辦,來自各行業(yè)對Docker和Kubernetes感興趣的約130名技術(shù)人參加了此次活動。
Docker容器技術(shù)已在云計算市場中風(fēng)靡一時了,而眾多主流供應(yīng)商則面臨著技術(shù)落后的窘境。那么,是什么讓Docker容器技術(shù)變得如此受歡迎呢?對于剛?cè)腴T的新手來說,容器技術(shù)可實現(xiàn)不同云計算之間應(yīng)用程序的可移植性,以及提供了一個把應(yīng)用程序拆分為分布式組件的方法。此外,用戶還可以管理和擴展這些容器成為集群。
在這樣的背景下,騰訊互聯(lián)網(wǎng)基礎(chǔ)服務(wù)運維負(fù)責(zé)人孫亮、Hyper聯(lián)合創(chuàng)始人&CTO王旭、時速云聯(lián)合創(chuàng)始人楊樂、搜狗應(yīng)用云平臺高級工程師裴彤以及數(shù)人科技COO謝樂冰親臨現(xiàn)場,給現(xiàn)場聽眾帶來了精彩的技術(shù)分享。
本次技術(shù)沙龍由時速云聯(lián)合創(chuàng)始人王磊主持,對大家能在周末抽時間參加此次Docker & Kubernetes技術(shù)沙龍表示歡迎和衷心的感謝。
1.騰訊云——容器在社交網(wǎng)絡(luò)技術(shù)運營的應(yīng)用
騰訊互聯(lián)網(wǎng)基礎(chǔ)服務(wù)運維負(fù)責(zé)人孫亮從無狀態(tài)服務(wù)器和運維體系、容器虛擬化實現(xiàn),隔離和生產(chǎn)、Docker應(yīng)用淺嘗這三個方面介紹了騰訊在社交網(wǎng)絡(luò)技術(shù)運營中對容器的應(yīng)用。
在隔離方案的描述中,孫亮提到資源隔離主要是通過namespace進(jìn)行環(huán)境隔離,通過cgroup進(jìn)行資源隔離,而且他們禁用了swap交換空間,這樣可以將隔離做的更加徹底。對于網(wǎng)絡(luò),他們主要使用的是Docker的bridge網(wǎng)絡(luò)方式,偶爾也會用到host網(wǎng)絡(luò)方式,而對于net這種網(wǎng)絡(luò)方式基本不會使用,因為在IP獲取方面存在一定的難度。對于內(nèi)核增強方面,他們將CPU、內(nèi)存做到了對子機不可見,因為這樣可以兼容網(wǎng)管監(jiān)控,并且為了防止母機進(jìn)程數(shù)過多,他們限制了子機的進(jìn)程總數(shù)。
***,在簡單介紹“推薦騰訊虛擬機Docker平臺——GAIA”的整體架構(gòu)后,有位同學(xué)問到了騰訊云中Docker容器的熱遷移是怎么實現(xiàn)的,孫亮解答說關(guān)鍵點在于解決了文件拷貝速度的問題。
2.Hyper——Hyper:用虛擬機作為Pod的邊界
Hyper的CTO王旭首先介紹Docker是由Container(LXC)加上Layered Image(AUFS)構(gòu)成的一個以應(yīng)用為核心的工具,他對Docker的理解是一個應(yīng)用以及這個應(yīng)用所需環(huán)境的封裝。由此,他引出了Hyper是由Hypervisor加上Docker Image構(gòu)成的一種以應(yīng)用為中心的虛擬化,Hyper直接在hypervisor上啟動容器。
接著,王旭給大家展示了Hyper的性能和開銷,雖然啟動時間沒有達(dá)到Docker容器的水平,但是相對于虛擬機的啟動速度來說快了很多,大概是350到500ms。對于Hyper的主要工作方式,他介紹到Hyper減少了虛擬機這一中間層(現(xiàn)在大家基本是在虛擬機之上運行Docker),使用Pod將相關(guān)的容器一次性都啟起來,讓這些容器共享IPC和Netns,這樣這些相關(guān)的容器就具備了很好的通信性能。
***,王旭介紹了HyperStack,這個集Kubernetes、Hyper、Neutron和Openstack為一體的工具,并表示他對CaaS將成為下一個云計算主流的平臺的信心。
3.時速云——Kubernetes分布式容器集群管理的利器
時速云聯(lián)合創(chuàng)始人楊樂以容器集群管理模型為切入點,介紹了Kubernetes的目的就是為了管理容器集群,包括資源調(diào)度、生命周期、健康檢查、實例伸縮模塊等。Kubernetes可以見母機集群組成一個大的資源池,通過資源調(diào)度模塊進(jìn)行資源的分配。同時,將母機集群組成了一個整體的SDN虛擬網(wǎng)絡(luò),為容器提供了跨機通信,而從提供了容器的跨機服務(wù)。
接著,楊樂給大家詳細(xì)介紹了Kubernetes的基本概念,包括Pod、RC(Replication Controller)、Services和Label。***,他談到了Kubernetes的優(yōu)勢及特征,主要是解決了Docker上的一些不足,主要是:
網(wǎng)絡(luò)模型上,做到容器的跨主機互通,建立了一個整體的SDN虛擬網(wǎng)絡(luò),使用NAT做內(nèi)網(wǎng)映射;
服務(wù)發(fā)現(xiàn)上,主要是通過設(shè)置環(huán)境變量和安裝插件;
資源限制上,主要是限制了Docker的CPU、內(nèi)存等資源;
存儲上,主要是解決了Pod重啟數(shù)據(jù)丟失和同一Pod中容器共享存儲的問題。
4.搜狗——把Docker打造成虛機
搜狗應(yīng)用云平臺高級工程師裴彤在介紹完自己之后,以“鐵路軌距的故事”作為引子,引出了搜狗工程師們對Docker的一些看法,即Docker的理念很前衛(wèi),但是不適合現(xiàn)有的開發(fā)和運維,不能兼容一些平臺及工具,所以,他們想將Docker打造成一種虛擬機,從而可以從傳統(tǒng)虛擬機平滑地過渡到Docker上。
接著,裴彤介紹了從Docker變成虛擬機的整個過程,主要包括:
(1)將Container加入到虛擬機的cgroup中;
(2)網(wǎng)絡(luò)上,使用自定義的bridge,將Container的網(wǎng)絡(luò)方式設(shè)置為none,然后自己指定container的IP、子網(wǎng)掩碼和網(wǎng)關(guān),并將這些配置寫到Docker env中,***創(chuàng)建veth pair,打通網(wǎng)橋和container之間的通信;
(3)存儲上,使用宿主機的本地存儲,利用cgroup對lv卷進(jìn)行iops、bps的限制;
(4)對于Metrics信息,分為兩方面。一方面,對于CPU和內(nèi)存的相關(guān)信息從cgroup中進(jìn)行收集;另一方面,對于網(wǎng)卡流量,從宿主機的/proc/net/dev上手機Container veth pair對端的流量,由于veth pair的特性,對端流入流量即為Container流出流量,而對端的流出流量即為Container的流入流量。
“有了虛擬機后,就可以進(jìn)行集群的構(gòu)建,主要是使用數(shù)據(jù)庫記錄宿主機、虛擬機和IP資源池等信息,然后編寫程序進(jìn)行虛擬機的增刪改查以及IP的動態(tài)分配,從而構(gòu)建了一個IaaS平臺”裴彤介紹說,基于這個IaaS平臺,可以進(jìn)行以下三種用途:
(1)替代部分KVM虛擬機;
(2)構(gòu)造一個PaaS平臺,從應(yīng)用視角出發(fā),對Docker虛擬機進(jìn)行組織管理;
(3)構(gòu)建MySQL數(shù)據(jù)庫云。
5.數(shù)人科技——微服務(wù)實踐:構(gòu)建分布式爬蟲系統(tǒng)
數(shù)人科技COO謝樂冰主要是以一個項目經(jīng)理的角度介紹了他們的分布式爬蟲系統(tǒng)。首先,他介紹了分布式和微服務(wù)的有點,主要包括:
(1)特定模塊單獨開發(fā)與測試;
(2)容器對特定模塊進(jìn)行橫向擴張;
(3)服務(wù)(及代碼)的可重用;
(4)離線與在線可以混合部署。
在介紹完分布式爬蟲系統(tǒng)的CheckList(包括服務(wù)單元功能單一、計算模塊要做到“無狀態(tài)”、任何服務(wù)不能單點必須做成集群、模塊間接口盡量異步、分布式配置管理以及各個層面的監(jiān)控與日志方案)后,謝樂冰給我們分享了一個經(jīng)驗。
“不要在一個Container中加載一個過重的進(jìn)程,可以將這個進(jìn)程解耦成多個輕量的進(jìn)程,分別運行在不同的Container中,因為Container本身就是比較輕量的,所以盡量讓Container中運行輕量的進(jìn)程。”
***,謝樂冰以“朝陽區(qū)群眾”為例,提出日志與監(jiān)控的重要性,并介紹了分布式爬蟲系統(tǒng)中的日志與監(jiān)控。
責(zé)任編輯:wangpeng
來源:
時速云