從此,Kubernetes變得簡單易用
原創(chuàng)Kubernetes,是Google開源的Docker容器集群管理系統(tǒng),它構建在Docker技術之上,為容器化的應用提供資源調(diào)度、部署運行、服務發(fā)現(xiàn)、擴容縮容等一整套功能,本質(zhì)上可看作是基于容器技術的mini-PaaS平臺。目前,無論是公有云還是私有云,甚至混合云,Kubernetes將作為一個為任何應用、任何環(huán)境的容器管理框架無處不在。正因為如此,受到各大巨頭及初創(chuàng)公司的青睞,如Microsoft、VMWare、Red Hat等,紛紛加入Kubernetes的陣營。但是,像單機操作系統(tǒng)Linux一樣,Kubernetes雖然開源了,安裝和部署卻相當復雜,需要專業(yè)知識和專業(yè)團隊。
大數(shù)據(jù)公司百分點集體和云知聲兩家公司都在使用Kubernetes。在百度硅谷AI實驗室資深科學家王益的協(xié)調(diào)下,兩方合作,成倍地提升了集群利用率和團隊工作效率,并且一起開發(fā)了開源的Kubernetes“發(fā)行版”Sextant——實現(xiàn)幾乎零操作的全自動安裝和部署Kubernetes集群。目前有多家互聯(lián)網(wǎng)同仁在準備使用和參與開發(fā)。
9月9日,分布式操作系統(tǒng)的“發(fā)行版”:Sextant正式發(fā)布。百度硅谷AI實驗室資深科學家王益、百分點集團技術副總裁劉譯璟、普惠金融CTO方亮、云知聲聯(lián)合創(chuàng)始人李霄寒,接受了51CTO記者的采訪,對Docker和Kubernets的運維趨勢進行了深入解讀。
Kubernetes的優(yōu)與劣
Kubernetes提升了團隊工作效率。因為所有作業(yè)都由分布式操作系統(tǒng)來調(diào)度,工程師們也不需要登陸到服務器。這降低了安全隱患,不需要工程師先登陸“跳板機”再從跳板機登陸服務器,從而提升了工作效率。此外,Kubernetes改變了工程師們的日常工作流程——通過要求開發(fā)團隊交付Docker image而不只是可執(zhí)行文件,Kubernetes簡化了集成測試,省去了發(fā)布、打包、部署、執(zhí)行、監(jiān)控、清理垃圾等運維工作。Kubernetes帶來的另一類工作效率提升在于降低了并行計算框架(如MapReduce、Spark、Storm等)的開發(fā)難度和成本。開發(fā)者不必再套用幾個成熟的開源框架來寫自己的分布式程序,而是可以基于Kubernetes方便地開發(fā)自己的并行計算框架。值得注意的是,基于Kubernetes用Go語言開發(fā)的MapReduce框架,其代碼行數(shù)是Hadoop MapReduce的百分之一,這意味著bug概率的極大降低,和處理bug的工作時間的極大節(jié)省。
Kubernetes集群的安裝需要大量繁瑣的手工操作。因為Kubernetes和相關技術在高速演進,很多手工操作需要重復執(zhí)行。此外,手工操作數(shù)十臺甚至數(shù)百臺服務器很容易出錯。這是目前在技術研發(fā)工作中碰到的***痛點。
為什么是Sextant
此次將Kubernetes的發(fā)行版命名為Sextant(航海用的六分儀),是因其和Docker(集裝箱)、Kubernetes(船舵)一樣,都是和航海、船相關的物品。
說到Sextant的研發(fā)初衷,百分點技術副總裁劉譯璟解釋說,百分點在2015年底大約有1000多臺機器, CPU的平均利用率只有18%,Hadoop整個集群利用率將近100%,2016年的數(shù)據(jù)量至少會增長50%以上,考慮到成本,百分點團隊希望能夠通過技術的力量解決這個問題,而不是購買新機器。
在百度硅谷AI實驗室資深科學家王益的建議下,決定從Kubernetes入手,希望把百分點Web以及大數(shù)據(jù)的應用在Kubernetes搭建起來??紤]到Kubernetes安裝和部署的復雜性,急需一套快捷的自動化的部署工具,把Kubernetes整個集群構建起來。云知聲的主要業(yè)務是人工智能,機器學習,在這方面可以和百分點互補,于是,在王益的協(xié)調(diào)下,百分點和云知聲兩家公司,本著研發(fā)出快速部署、安裝Kubernetes工具的目標,合作組建了研發(fā)團隊。
經(jīng)過一個多月的努力,Sextant的***個版本誕生了。為了方便重裝系統(tǒng),Sextant會在數(shù)據(jù)中心中的一臺bootstrapper服務器上部署PXE service,然后依次重啟其他服務器。這些服務器啟動的時候,BIOS/EFI從PXE service引導CoreOS,并將CoreOS安裝到本地磁盤,并配置Kubernetes,隨后重啟服務器,這臺服務器便可自動成為Kubernetes集群的一員了。為了將這種變化限定于數(shù)據(jù)中心里的一部分服務器,Sextant可以利用VLAN等隔離措施。因為Kubernetes是以容器的形式運行的,而每當Kubernetes升級時,Sextant將升級版本的容器鏡像放到bootstrapper服務器上,集群即可自動升級Kubernetes。每當CoreOS升級的時候,Sextant也將新版本放到bootstrapper服務器上,CoreOS會自動升級和重啟,并且保證每次同時重啟的機器數(shù)量是集群總數(shù)的一個極小的比例,不影響不中斷Kubernetes調(diào)度的分布式作業(yè)。所有的升級和安裝,都不依賴集群可以直接訪問互聯(lián)網(wǎng),從而保證了安全性。
強強聯(lián)合,開辟全新的合作圖景
云知聲聯(lián)合創(chuàng)始人李霄寒介紹說,近年來,語音和視覺技術隨深度學習的進一步發(fā)展,創(chuàng)造了IoT、AR和無人車等新興領域。未來的互聯(lián)網(wǎng)會和人們的生活契合得更緊密,收集更多更細致的數(shù)據(jù),也需要更大規(guī)模人工智能技術的支持。而這些恰好是百分點和云知聲的業(yè)務基礎和技術長項。Kubernetes提供了一個合作的平臺:Kubernetes可以同時調(diào)度離線和在線作業(yè)。尤其是Kubernetes的service和load balancer的概念,使其可以調(diào)度在線服務、日志收集處理和存儲、AI模型的訓練等各類不同的作業(yè)。在有Kubernetes之前,公司之間的合作往往是松耦合的;而在Kubernetes平臺上,開發(fā)團隊可以同時運行百分點的EFK技術用于收集和管理數(shù)據(jù),以及云知聲的大規(guī)模AI系統(tǒng)從數(shù)據(jù)中提取知識和提升服務質(zhì)量。
對金融界的意義
據(jù)普惠金融CTO方亮介紹,互聯(lián)網(wǎng)金融的核心有兩點:一是去中心化,二是風控。在互聯(lián)網(wǎng)金融領域,需要不斷尋找各種各樣的數(shù)據(jù),包括像百分點這樣的第三方提供的數(shù)據(jù),自己的爬蟲數(shù)據(jù),還有一些自由數(shù)據(jù)。如何把這些數(shù)據(jù)處理好,不管是傳統(tǒng)基于統(tǒng)計的風控模型,還是基于***的一些人工智能,深度學習這種新方式做模型,都需要很大的計算資源。如何組織好這些計算資源,讓它們有彈性,可以擴展,能夠為風控、為真正金融消費者服務,Kubernetes等容器技術給互聯(lián)網(wǎng)金融帶來了變革。
Sextant是一個早期開源項目,隨著Kubernetes技術的演進,Sextant還需要長期維護開發(fā)。百分點和云知聲的技術團隊以充分開放的心態(tài),愿意分享各自業(yè)務中Kubernetes技術的使用經(jīng)驗。也愿意幫助業(yè)界同仁使用Sextant簡化Kubernetes部署。百分點和云知聲都表示歡迎相關技術人員一起合作投入到Sextant的開發(fā)工作中,為提升團隊工作效率和計算能力共同努力!