自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Kubernetes 的未來在于虛擬機(jī),而非容器

云計(jì)算 虛擬化
Kubernetes這項(xiàng)技術(shù)對于我今年的職業(yè)生涯而言可謂至關(guān)重要,相信其重要意義在新的一年中還將繼續(xù)保持。值此辭舊迎新之際,請大家允許我結(jié)合個(gè)人體會做出一點(diǎn)大膽的預(yù)測:Kubernetes的未來在于虛擬機(jī),而非容器。

[[254590]]

Kubernetes這項(xiàng)技術(shù)對于我今年的職業(yè)生涯而言可謂至關(guān)重要,相信其重要意義在新的一年中還將繼續(xù)保持。值此辭舊迎新之際,請大家允許我結(jié)合個(gè)人體會做出一點(diǎn)大膽的預(yù)測:Kubernetes的未來在于虛擬機(jī),而非容器。

2018年是中國十二生肖中的狗年,同時(shí)也是技術(shù)層面的Kubernetes元年。如今,學(xué)習(xí)Kubernetes的朋友已經(jīng)為數(shù)不少,各公司的CIO也在努力制定自己的“Kubernetes戰(zhàn)略”。更有部分組織已經(jīng)開始在Kubernetes上運(yùn)行大規(guī)模生產(chǎn)工作負(fù)載。

如果您剛剛嘗試建立Kubernetes策略,那么您恐怕已經(jīng)失敗了——我們會在后續(xù)文章中就此展開探討。

換句話說,在Gartner為Kubernetes提出的炒作周期各個(gè)階段當(dāng)中,都有很多人陷入了幻滅的低谷甚至是絕望的陷阱。

我個(gè)人正是容器技術(shù)的忠實(shí)粉絲,我也絕對不是說容器技術(shù)會走向消亡。Docker于2013年為我們帶來了Linux容器的打包方案,其顯示出一種令人印象深刻的應(yīng)用程序構(gòu)建、打包、共享與部署新方法。容器的成功可謂正當(dāng)其時(shí),畢竟這時(shí)候我們正在認(rèn)真考慮如何實(shí)現(xiàn)持續(xù)交付。容器模型非常適合現(xiàn)代交付管道與PaaS,同時(shí)也高度契合之后出現(xiàn)的CaaS平臺。

 

谷歌公司的工程師們也意識到,技術(shù)社區(qū)終于為容器的出現(xiàn)做好了準(zhǔn)備。長久以來,谷歌方面一直在使用(甚至在一定程度上發(fā)明了)容器技術(shù)。他們開始構(gòu)建Kubernetes,現(xiàn)在我們知道其靈感源自谷歌內(nèi)部的Borg平臺,而項(xiàng)目本身則以社區(qū)開發(fā)的形式運(yùn)作。

不久之后,各大公有云供應(yīng)商就為Kubernetes提供了***的發(fā)揮舞臺(GKE、AKS以及EKS等)。內(nèi)部人員也很快建立起自己的基于Kubernetes平臺(Pivotal Container Service以及OpenShift等)。

令人頭痛的多租戶機(jī)制

然而,仍有一個(gè)棘手的問題有待解決,我認(rèn)為這也可能成為容器崩潰的核心原因——多租戶機(jī)制。

Linux容器在設(shè)計(jì)之初并沒有考慮到安全的隔離沙箱(例如Solaris Zones或者FreeBSD Jails)。相反,容器采用的是共享內(nèi)核模式,其利用內(nèi)核功能提供基礎(chǔ)性的進(jìn)程隔離功能。正如Jessie Frazelle在文章中指出,“容器并不真實(shí)存在。”

 

更麻煩的是,大多數(shù)Kubernetes組件無法感知到租戶。雖然我們可以使用命名空間以及Pod安全策略,但API本身確實(shí)不具備租戶感知能力。此外, kubelet或者kube-proxy等內(nèi)部組件也存在同樣的問題。這意味著Kubernetes能夠提供的只是一種“軟租戶”模式。

 

抽象泄漏。建立在容器之上的平臺會繼承容器技術(shù)的諸多軟租戶因素。正如建立在硬多租戶虛擬機(jī)基礎(chǔ)之上的平臺(包括VMware、Amazon Web Srevices以及OpenStack等),也都繼承了這種硬租戶機(jī)制一樣。

Kubernetes集群本身成了“硬租戶”面臨的***道坎,也因此導(dǎo)致大部分用戶只能使用“多集群”這一新興模式,而非“單一共享”集群。相信很多朋友都發(fā)現(xiàn)了,谷歌GKE Service的用戶往往需要面向多個(gè)團(tuán)隊(duì)部署數(shù)十個(gè)Kubernetes集群,有時(shí)候每一位開發(fā)者都擁有自己的集群。這類作法最終導(dǎo)致了嚴(yán)重的Kube泛濫問題。

“這類作法最終導(dǎo)致了嚴(yán)重的Kube泛濫問題。”

通常來講,我們使用的最小集群包含四臺設(shè)備(或者虛擬機(jī))。其中一臺(或者三臺,用以實(shí)現(xiàn)高可用性)作為Kubernetes主節(jié)點(diǎn),另外三臺作為Kubernetes工作節(jié)點(diǎn)。這不僅會帶來極高的資金成本,同時(shí)也使得大部分系統(tǒng)資源長期處于閑置狀態(tài)。

因此,我們需要以某種方式將Kubernetes轉(zhuǎn)換至硬租戶模式。Kubernetes社區(qū)對于這種需求有著明確的認(rèn)知,也建立起專門的多租戶工作組。該小組一直在努力解決這個(gè)問題,并針對各類可行模式給出了多種改進(jìn)建議。

針對速度進(jìn)行優(yōu)化的小型虛擬機(jī)更為可行……

Kata Containers是一個(gè)開源項(xiàng)目與社區(qū),致力于構(gòu)建輕量極虛擬機(jī)的標(biāo)準(zhǔn)實(shí)現(xiàn)方案。其使用感受與執(zhí)行效果與容器類似,但能夠提供與虛擬機(jī)相同的工作負(fù)載隔離能力及安全優(yōu)勢。

Jessie建議使用Kata Containers這類虛擬機(jī)容器技術(shù)。Kata Containers將虛擬機(jī)級別的隔離機(jī)制與容器的執(zhí)行及起效方式加以結(jié)合。如此一來,Kubernetes將能夠?yàn)槊總€(gè)租戶(我們假定每命名空間一個(gè)租戶)提供運(yùn)行在嵌套虛擬機(jī)容器(即由底層IaaS提供,運(yùn)行在虛擬機(jī)之內(nèi)的容器)內(nèi)的一組獨(dú)立Kubernetes系統(tǒng)服務(wù)。

 

image from Jessie Frazelle - Hard Multi-Tenancy in Kubernetes

這可謂是一種優(yōu)雅的Kubernetes多租戶問題解決方案。Jessie甚至進(jìn)一步建議Kubernetes使用嵌套容器虛擬機(jī)處理運(yùn)行在Kubernetes之上的工作負(fù)載(Pod),從而大大提高資源利用率。

在這方面,我們至少還能夠做出一項(xiàng)深層優(yōu)化,即為底層IaaS或云服務(wù)供應(yīng)商構(gòu)建合適的虛擬機(jī)管理程序。如果其中虛擬機(jī)容器代表著由IaaS提供的***層抽象,那么我們甚至能夠進(jìn)一步優(yōu)化資源利用率。具體來講,我們可以將運(yùn)行Kubernetes集群所需要的***虛擬機(jī)數(shù)量減少至一個(gè)(或者三個(gè)以實(shí)現(xiàn)高可用性),并用以承載開放給“超級用戶”的Kubernetes控制平面。

資源(成本)優(yōu)化型多租戶機(jī)制

配合兩個(gè)命名空間并運(yùn)行有多款應(yīng)用程序的Kubernetes集群將如下所示。

 

注意:同一IaaS基礎(chǔ)設(shè)施之上還運(yùn)行有其他云用戶的工作負(fù)載。由于這些屬于虛擬機(jī)容器,因此其擁有與常規(guī)云虛擬機(jī)相同的隔離級別,因此,它們能夠以***風(fēng)險(xiǎn)運(yùn)行在同一虛擬機(jī)管理程序之上。

起初,云基礎(chǔ)設(shè)施上的部署量為零,因此超級用戶的成本也為零。

該超級用戶從云端請求Kubernetes集群,云服務(wù)供應(yīng)商負(fù)責(zé)創(chuàng)建單一容器虛擬機(jī)(或者三個(gè)容器虛擬機(jī)以實(shí)現(xiàn)高可用性)以運(yùn)行主Kubernetes API與系統(tǒng)服務(wù)。超級用戶可以選擇在系統(tǒng)命名空間當(dāng)中部署Pod,或者創(chuàng)建新的命名空間以分配面向其他用戶的訪問。

超級用戶創(chuàng)建兩個(gè)命名空間,分別為foo與bar。Kubernetes從云端為每個(gè)命名空間的控制平面(即Kubernetes API與系統(tǒng)服務(wù))請求兩個(gè)虛擬機(jī)容器。超級用戶為各用戶分配該命名空間的訪問權(quán)限,從而允許這些用戶各自部署一部分工作負(fù)載(Pod),而用戶自己的控制平面又進(jìn)一步請求用于運(yùn)行這些工作負(fù)載的虛擬機(jī)容器。

在整個(gè)執(zhí)行流程當(dāng)中,超級用戶只需要為實(shí)際消費(fèi)的資源付費(fèi),云端可供用戶使用的全部容量皆歸云服務(wù)供應(yīng)商所有。

其實(shí)這并不是什么新鮮事物……

云服務(wù)供應(yīng)商們已經(jīng)在努力實(shí)現(xiàn)上述目標(biāo)。關(guān)注開源社區(qū)動態(tài)的朋友肯定已經(jīng)發(fā)現(xiàn)了相關(guān)跡象。(更具體地講,亞馬遜希望通過Fargate達(dá)到的正是這一效果,只是并未公開宣布。)

***個(gè)跡象就是Virtual Kubelet,這款開源工具旨在模擬kubelet。其將Kubernetes與其它API相連,從而允許Kubernetes從云端的容器虛擬機(jī)調(diào)度程序處請求容器虛擬機(jī)。

其它多種新興虛擬機(jī)容器技術(shù)中也存在著類似的跡象,包括之前提到的Kata Containers、亞馬遜的Firecracker以及谷歌的gvisor等等。

總結(jié)

將正確的改進(jìn)效果同Kubernetes硬租戶模式相結(jié)合,大家將真正發(fā)揮Kubernetes的全部潛能。Kubernetes工作負(fù)載的全面隔離與每Pod成本消費(fèi)模式將最終使Kubernetes成為工作負(fù)載運(yùn)行的***選項(xiàng)。

對于并沒有使用公有云的朋友,雖然業(yè)務(wù)體系中不存在基礎(chǔ)設(shè)施供應(yīng)商(這種情況下,基礎(chǔ)設(shè)施將由您自行提供),因此無法獲得同樣的容量消費(fèi)模式,但大家仍然可以通過這種方式實(shí)現(xiàn)資源利用率提升與總體容量需求削減。

我們也熱切希望VMware與OpenStack關(guān)注這一趨勢,并為我們帶來基于虛擬機(jī)管理程序的輕量級虛擬機(jī)容器技術(shù)以及理想的Virtual Kubelet實(shí)現(xiàn)方案。

責(zé)任編輯:武曉燕 來源: 云頭條
相關(guān)推薦

2022-08-14 09:11:13

Kubernetes容器云原生

2023-05-29 07:30:56

容器虛擬機(jī)硬件

2022-06-10 18:59:53

容器Kubernetes

2023-07-24 16:35:42

容器虛擬機(jī)

2017-06-06 15:34:55

2022-06-06 14:35:59

KubevirtKubernetes虛擬機(jī)

2020-05-25 10:02:38

云計(jì)算軟件開發(fā)容器

2016-09-30 15:40:36

容器虛擬化

2014-01-09 16:11:07

Linux桌面操作系統(tǒng)

2023-02-06 15:28:51

2023-11-27 00:46:39

裸機(jī)虛擬機(jī)

2012-05-18 10:22:23

2020-11-03 10:23:22

云計(jì)算容器技術(shù)

2009-07-29 17:19:02

hypervisor-container-b

2014-05-19 16:46:00

虛擬化技術(shù)虛擬機(jī)

2018-03-22 10:06:12

容器虛擬機(jī)遷移

2017-03-02 09:49:38

2023-06-03 00:04:10

容器虛擬機(jī)VM

2020-01-17 10:52:37

無服務(wù)器容器技術(shù)

2013-07-17 09:32:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號