開源也分陣營?OpenStack擁抱Kubernetes
作為第一個開源的云技術項目,聚光燈下的OpenStack一路走來受到了成千上萬家云計算公司的追捧,并且在中國的私有云市場占據了主導地位。然而,以AWS、Azure、GCP等CSP為代表的企業以自研的方式探索出了另一條路,加之Kubernetes等技術理念的興起,一些人開始覺得OpenStack不是那么必要了。
61億美元,這是2018年OpenStack的商業市場規模(IDC數據),自2010年面世以來,OpenStack已成為最受關注的開源技術之一,在中國市場更是推動了云計算產業的高速發展。去年OpenStack的代碼修改次數達到了7萬次,全球達到這個數量級的修改規模的只有三個項目:Linux Kernel、Chromium和OpenStack。作為全球最大的三個(開源)項目之一, OpenStack已存在了十年之久。
目前,在OpenStack云平臺上運行的計算核心或CPU規模已達到千萬級,像雅虎內部運行的OpenStack云平臺服務器內核規模可以達到400萬,擁有大型強子對撞機的歐洲核子研究組織(CERN)也在OpenStack平臺上運行著各種物理實驗和數據分析及處理工程。同時,在OpenStack項目下(如Cyborg)也有為GPU和FPGA等加速資源提供的通用管理框架,幫助用戶在自己的云環境中部署機器學習項目。
青云QingCloud應用及容器平臺研發總監周小四表示,Kubernetes與OpenStack并不是一個層級的東西,但通過Kubernetes式的交付能否繞過OpenStack在底層的支撐,間接完成“替代”呢?首先要知道,Kubernetes的后臺很強大,其是源自于Google內部的BORG,BORG在Google內部運行了差不多20年。Google幾乎所有系統都跑在BORG的調度系統上。Kubernetes是脫胎于BORD系統,理念和架構都得到了驗證。Google、IBM等廠商讓大家相信K8S的架構是優越的,里面有很多理念是其他容器平臺沒有的,因為它早就已經成熟了。
周小四談到,大廠商的支持使得Kubernetes的生態是足夠強的,如果哪一天說Go語言是生態最完善的語言,這時候要找學Java的人是很痛苦的,因為沒有人學Java了,這是生態的力量。K8S生態強大且迭代速度快。像Mesos就存在這個問題,它沒有社區、沒有反饋。他們最大的企業用戶印象中是蘋果,他們自己定制化的,定制化后改的東西沒有回饋到社區。
“就如Linux Kernel是內核,上面需要Linux發行版,比如CentOS、Ubuntu等,也可以把Kubernetes當成分布式操作系統的內核,需要在上面做很多功能。與之相比,OpenStack是另一碼事,OpenStack是以前的IaaS,是虛機Base的。”周小四說。
但Kubernetes和Linux Kernel有一定的區別,用戶沒法直接使用Linux Kernel,一定是使用發行版。Kubernetes不一樣,用戶可以直接使用,它把核心的功能(容器調度、管理)都幫用戶完成了,有了完整的API。不過這樣做的用戶體驗不好,并且除了調度、編排外沒有其他的功能。
周小四稱,Kubernetes可以在裸機上跑,可以在物理機上跑,它可以納管物理機的資源。在企業里,傾向于把自己的生產環境落地到物理機上。那么Kubernetes跟虛機有什么關系?Kubernetes本身不管下面是什么東西,無論是虛機還是物理機,它看到的就是一個節點,有IP地址就夠了,可以在上面運行管理它,甚至可以打標簽。K8S本身是可以部署在虛機上的,可以部署在OpenStack的虛機上,也可以部署在物理機上。
由此,就回到了最初討論的問題,Kubernetes對OpenStack是否是威脅?一項數據顯示,多數用戶都會在OpenStack云上運行Kubernetes,而OpenStack基金會也看到了這一趨勢,他們配備了專人負責與Kubernetes有關的上游工作,例如去年做的最重要的事情之一,就是組織與Kubernetes領域CSP相關的活動。
Kubernetes和底層的基礎設施之間有著緊密的聯系,它可以跑在不同的基礎設施上。但是,就像周小四所說的,Kubernetes在和底層基礎設施進行對接時,沒有統一的標準,意味著在實際使用過程中,在不同用戶、不同使用條件下的體驗是不同的。因此,在OpenStack和Kubernetes之間實現統一和標準化,提供更好的測試環境,這是需要OpenStack基金會需要做的事情。
再廣泛使用的技術架構都有過時的那一天,只有主要改變才能繼續繁榮下去。