介紹
今天VMware發(fā)布了技術(shù)預(yù)覽版的Project Pacific口柳,這項(xiàng)技術(shù)將為廣大的企業(yè)私有云建設(shè)者提供新的思路。
Project Pacific給vSphere增加了一個(gè)新的控制平面蒜危,使用戶(hù)可以用Kubernetes管理vSphere趁俊。 對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)脚作,Project Pacific就像是一個(gè)增強(qiáng)的Kubernetes集群,可以使用Kubernetes聲明式語(yǔ)法來(lái)管理虛擬機(jī)匈辱、磁盤(pán)和網(wǎng)絡(luò)等資源振湾。 對(duì)于IT管理員來(lái)說(shuō),Project Pacific仍舊是vSphere亡脸,但是添加了以應(yīng)用為邊界的整體管理的能力押搪,而不是單獨(dú)管理許多個(gè)獨(dú)立的組成應(yīng)用的虛擬機(jī)或者容器。
Project Pacific可以利用企業(yè)現(xiàn)有的SDDC投資浅碾、人員技能和工具大州,加速vSphere平臺(tái)上現(xiàn)代化應(yīng)用的開(kāi)發(fā)和運(yùn)營(yíng)。 通過(guò)利用Kubernetes作為vSphere的控制平面垂谢,Project Pacific允許企業(yè)利用一個(gè)融合的平臺(tái)同時(shí)運(yùn)行傳統(tǒng)應(yīng)用和現(xiàn)代化應(yīng)用厦画。
現(xiàn)代化應(yīng)用的挑戰(zhàn)
在企業(yè)環(huán)境中,現(xiàn)代化應(yīng)用通常是由很多種不同的技術(shù)組件組成的滥朱,有些組件運(yùn)行在容器中根暑,有些組件運(yùn)行在虛擬機(jī)中(如數(shù)據(jù)庫(kù))融师,有時(shí)需要訪問(wèn)遺留系統(tǒng)矢赁,甚至有些需要訪問(wèn)FaaS。這些組件分布式的部署在不同的運(yùn)行環(huán)境中萌狂,通常由不同的團(tuán)隊(duì)開(kāi)發(fā)和維護(hù)鹃栽。
這樣的應(yīng)用架構(gòu)給開(kāi)發(fā)人員帶來(lái)了困擾,你不能只關(guān)注Kubernetes躯畴,因?yàn)楹芏嘟M件并沒(méi)有運(yùn)行在容器中民鼓。一旦部署了這樣的應(yīng)用程序,如何維護(hù)并更新它蓬抄?可以使用哪些工具來(lái)監(jiān)控丰嘉、診斷和調(diào)試部署?
同樣嚷缭,基礎(chǔ)設(shè)施部門(mén)也面臨了新的問(wèn)題饮亏。為了支持容器和虛擬機(jī)共存的應(yīng)用耍贾,有些企業(yè)不得不在vSphere集群外搭建一套新的容器集群,這種做法引入了新的孤島路幸,并且多個(gè)集群的運(yùn)維管理工具和方法是完全不同的荐开,應(yīng)用治理的策略也無(wú)法同步到兩種類(lèi)型的集群中。
Kubernetes作為平臺(tái)的平臺(tái)
Kubernetes的聯(lián)合創(chuàng)始人Joe Beda說(shuō)過(guò)简肴,“Kubernetes是一個(gè)平臺(tái)的平臺(tái)晃听,可以用來(lái)構(gòu)建新的平臺(tái)”。是的砰识,Kubernetes是一個(gè)容器編排平臺(tái)能扒,但是依賴(lài)Kubernetes的核心原則我們能夠編排任何東西!如果我們用Kubernetes的方式重新架構(gòu)vSphere辫狼,讓vSphere運(yùn)行在Kubernetes之上會(huì)是什么效果呢初斑?那么,開(kāi)發(fā)人員想要?jiǎng)?chuàng)建虛擬機(jī)膨处、容器或Kubernetes集群见秤,他們只需要編寫(xiě)一個(gè)Kubernetes YAML文件并使用kubectl部署它,就像使用任何其他Kubernetes對(duì)象(Pod灵迫,service秦叛,ingress)一樣。
通過(guò)這個(gè)理念瀑粥,開(kāi)發(fā)人員可以將Kubernetes良好的使用感受從云原生應(yīng)用擴(kuò)展到數(shù)據(jù)中心中的任何類(lèi)型的應(yīng)用挣跋。使他們可以輕松地部署和管理跨多個(gè)技術(shù)堆棧的現(xiàn)代化應(yīng)用。
以應(yīng)用為中心的管理
vSphere提供了很多針對(duì)虛擬機(jī)的管理功能狞换,vMotion避咆、HA、snapshot修噪、加密查库、配額管理、存儲(chǔ)策略等黄琼。但現(xiàn)代化應(yīng)用一般來(lái)說(shuō)不是一個(gè)虛擬機(jī)樊销,它可能是幾十個(gè)虛擬機(jī)加上更多的容器。 對(duì)于現(xiàn)代化應(yīng)用來(lái)說(shuō)脏款,從整個(gè)應(yīng)用層面實(shí)現(xiàn)以上的功能就比較困難了围苫。
幸運(yùn)的是,Kubernetes帶來(lái)了另一個(gè)可以解決這個(gè)問(wèn)題的概念:Namespace撤师。 Kubernetes中的Namespace是資源對(duì)象(容器剂府、VM、磁盤(pán)等)的集合剃盾。 如果我們使用Kubernetes Namespace來(lái)模擬現(xiàn)代應(yīng)用腺占,然后將針對(duì)虛擬機(jī)的管理功能在Namespace上實(shí)現(xiàn)淤袜,那么就可以一次控制整個(gè)應(yīng)用的資源分配、vMotion衰伯、加密铡羡、HA和快照,而不必單獨(dú)配置每個(gè)虛擬機(jī)或者容器嚎研。
這對(duì)IT管理員有兩個(gè)真正的變革性影響蓖墅。
首先,我們認(rèn)為這為IT管理員提供了巨大的生產(chǎn)力提升临扮。 過(guò)去论矾,您可能在vCenter清單中有數(shù)千個(gè)虛擬機(jī)需要處理。 但是杆勇,一旦將這些虛擬機(jī)分組到其邏輯所屬的應(yīng)用中贪壳,您可能只需要處理幾十個(gè)Namespace。 過(guò)去蚜退,如果您想加密應(yīng)用程序闰靴,則必須先找到屬于該應(yīng)用程序的所有虛擬機(jī),然后在每個(gè)虛擬機(jī)上啟用加密钻注。 現(xiàn)在蚂且,您只需單擊vCenter中Namespace上的按鈕即可完成所有操作。 您可以獲得巨大的生產(chǎn)力提升幅恋,因?yàn)槟梢蕴幚響?yīng)用而不是單個(gè)虛擬機(jī)杏死。
其次,我們認(rèn)為Namespace為開(kāi)發(fā)人員提供了更好的自助服務(wù)模型捆交。 使用Namespace淑翼,IT管理員可以在Namespace上設(shè)置一次策略,然后將Namespace權(quán)限分配給開(kāi)發(fā)人員品追,Namespace中的每個(gè)對(duì)象都將繼承統(tǒng)一設(shè)置的策略玄括。 開(kāi)發(fā)人員可以快速、自助的創(chuàng)建任何他需要的資源肉瓦,虛擬機(jī)遭京、容器、Kubernetes集群等泞莉,而IT只需要從應(yīng)用的整體維度來(lái)確保資源的使用符合公司的策略洁墙。
Kubernetes原生的vSphere平臺(tái)
Project Pacific將Kubernetes控制平面直接集成到ESXi和vCenter中 - 使其成為ESXi的控制平面,并通過(guò)vCenter提供以應(yīng)用為中心的管理功能戒财。
Supervisor clusters
Supervisor cluster是一種特殊的Kubernetes集群,它將ESXi節(jié)點(diǎn)變成Kubernetes的worker node捺弦。 這是通過(guò)將類(lèi)似kubelet的agent(Spherelet)直接集成到ESXi中實(shí)現(xiàn)的饮寞。 Spherelet不是虛擬機(jī)孝扛,它是ESXi上的一個(gè)進(jìn)程。
ESXi Native Pods
部署在Supervisor上的Pod幽崩,每個(gè)Pod都在一個(gè)隔離的輕量級(jí)虛擬機(jī)中運(yùn)行苦始。 這個(gè)輕量級(jí)的虛擬機(jī)就是CRX,包含一個(gè)Linux內(nèi)核和最小容器運(yùn)行時(shí)慌申。
經(jīng)過(guò)測(cè)試陌选,ESXi可以在100毫秒內(nèi)啟動(dòng)native pod,在單個(gè)ESXi主機(jī)上支持超過(guò)1000個(gè)pod蹄溉。 在我們的內(nèi)部測(cè)試中咨油,我們已經(jīng)證明了ESXi Native Pods在SPECjbb2015基準(zhǔn)測(cè)試中的吞吐量比虛擬機(jī)中的常規(guī)Pod高出30%,比裸機(jī)Linux上的Pod快8%柒爵!
虛擬機(jī)
Supervisor cluster提供VM operator役电,允許用戶(hù)以Kubernetes的方式管理虛擬機(jī)。用戶(hù)可以在一個(gè)yaml文件中描述虛擬機(jī)的部署規(guī)范和其所需的網(wǎng)絡(luò)和存儲(chǔ)資源棉胀。
VM Operator 對(duì)于私有云建設(shè)有著重大的業(yè)務(wù)價(jià)值法瑟,請(qǐng)參考另一篇文章。新一代企業(yè)私有云建設(shè)的“底座”
VM Operator只是作為vSphere管理虛擬機(jī)的補(bǔ)充唁奢,這意味著用戶(hù)可以繼續(xù)使用vSphere的所有功能霎挟,來(lái)管理Kubernetes置備出的虛擬機(jī)實(shí)例。
Guest cluster
雖然Supervisor cluster已經(jīng)是一個(gè)Kubernetes集群麻掸,但是它的設(shè)計(jì)目標(biāo)是用來(lái)管理vSphere酥夭,而不是通用的業(yè)務(wù)部署平臺(tái)。這樣設(shè)計(jì)的原因有以下幾個(gè)论笔,
- Kubernetes的最佳實(shí)踐是多集群采郎,不同的租戶(hù)使用不同規(guī)格(版本、規(guī)模)的集群狂魔。而一個(gè)vSphere的cluster就是一個(gè)Supervisor cluster蒜埋,這種方式不符合最佳實(shí)踐。當(dāng)租戶(hù)需要不同版本的Kubernetes的時(shí)候最楷,Supervisor cluster不能夠滿(mǎn)足要求整份。
- Supervisor cluster內(nèi)置在vSphere中,只能隨著vSphere版本的升級(jí)而升級(jí)籽孙。一般來(lái)講烈评,用戶(hù)要求Kubernetes的版本可以隨時(shí)升級(jí),而不希望頻繁的升級(jí)底層的vSphere犯建。
- 為了安全原因讲冠,Supervisor cluster禁止了privilege等一些特殊模式。而有些時(shí)候用戶(hù)需要這些模式的集群适瓦。
Guest Clusters 很好的解決了以上的問(wèn)題竿开,Guest Clusters可以提供通用的Kubernetes給用戶(hù)谱仪。Guest Cluster是一個(gè)Kubernetes集群,它在Supervisor Cluster上的虛擬機(jī)內(nèi)運(yùn)行否彩。 Guest Cluster是完全符合CNCF認(rèn)證的Kubernetes疯攒,因此可以保證兼容任何運(yùn)行在Kubernetes上的應(yīng)用。
vSphere中的Guest Clusters使用開(kāi)源Cluster API項(xiàng)目來(lái)生命周期管理Kubernetes集群列荔。
鏡像倉(cāng)庫(kù)
為了運(yùn)行容器敬尺,用戶(hù)需要一個(gè)鏡像倉(cāng)庫(kù)。 因此贴浙,Project Pacific將Harbor集成到vSphere中砂吞,您可以從vCenter直接打開(kāi)Harbor。 每個(gè)Namespace都是Harbor中的一個(gè)project悬而。
總結(jié)
Project Pacific是VMware在Kubernetes領(lǐng)域一個(gè)里程碑的發(fā)布呜舒。如果您想了解更多細(xì)節(jié),敬請(qǐng)關(guān)注本周在VMworld上的相關(guān)內(nèi)容笨奠。VMWorld
本文翻譯補(bǔ)充自 - Project Pacific 技術(shù)概覽