虛擬機(jī)為什么會(huì)和容器有關(guān)聯(lián)呢?容器在虛擬機(jī)中的作用是什么?如何把他們鏈接在一起?和小編一起了解吧。
容器是當(dāng)今IT界最熱門的話題之一,很大程度上歸功于許多網(wǎng)絡(luò)公司如Facebook和Twitter的采用。 在過去的兩年中,包括亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)和谷歌計(jì)算平臺(GCP)在內(nèi)的主要
云計(jì)算提供商已經(jīng)通過產(chǎn)品化服務(wù)提供了Docker容器。 在DevOps環(huán)境中,開發(fā)人員越來越多地使用容器,開發(fā)人員可以自動(dòng)執(zhí)行應(yīng)用程序和工作負(fù)載部署 集裝箱也被吹捧為提高整體基礎(chǔ)設(shè)施利用率的一種手段,因?yàn)榕c虛擬機(jī)(VM)相比,它們的設(shè)計(jì)輕巧,減少了部署,拆卸,重新實(shí)例化或遷移的時(shí)間。 在這篇文章中,我將評估使用容器的優(yōu)勢。
為什么使用容器? 3主要優(yōu)點(diǎn)
去年在亞特蘭大舉行的OpenStack峰會(huì)上,來自Parallels的一位代表闡述了容器相比虛擬機(jī)的三大主要技術(shù)優(yōu)勢。 它們包括速度,便攜性和密度:
1.速度
在容器中部署的應(yīng)用程序比在虛擬機(jī)中部署的應(yīng)用程序更有彈性完全引導(dǎo)整個(gè)VM(包括操作系統(tǒng)(OS)和內(nèi)核)通常可能需要幾秒鐘甚至幾分鐘的時(shí)間。另一方面,容器可以以毫秒為單位進(jìn)行部署,因?yàn)樗鼈児蚕硪粋€(gè)操作系統(tǒng),只需要加載應(yīng)用程序所需的某些軟件包。
2.便攜性
Docker最大的好處之一是可移植性。 Docker容器可以在公有Amazon EC2實(shí)例或私有OpenStack
主機(jī)中運(yùn)行。如果主機(jī)操作系統(tǒng)在公共云實(shí)例中支持生產(chǎn)中的Docker容器,則它可以很容易地部署到開發(fā)人員的VirtualBox環(huán)境中,以保持一致性和功能性。這使您可以從基礎(chǔ)設(shè)施層獲得高層次的抽象,并可以與各種配置管理工具(如Chef,Puppet和Ansible)一起使用。
3.密度
容器還可以在基礎(chǔ)架構(gòu)內(nèi)實(shí)現(xiàn)更好的工作量密度。容器每個(gè)實(shí)例的內(nèi)存開銷較少,因?yàn)槊總€(gè)應(yīng)用程序都加載到跨所有容器共享的主機(jī)操作系統(tǒng)中。操作系統(tǒng)和內(nèi)核不需要為每個(gè)容器加載。因此,更多的應(yīng)用程序和工作負(fù)載可以被擠壓到相同的硬件或基礎(chǔ)設(shè)施上。
虛擬機(jī)“缺點(diǎn)”
傳統(tǒng)的虛擬機(jī)管理程序技術(shù)造成了對單個(gè)虛擬機(jī)功能的誤解。如果虛擬機(jī)可以執(zhí)行或展示與容器相同的屬性或?qū)傩阅?讓我們來分析上面提到的每一點(diǎn),看看虛擬機(jī)在真正的超融合基礎(chǔ)設(shè)施領(lǐng)域如何像集裝箱一樣行事。
1.速度
虛擬機(jī)部署和啟動(dòng)緩慢的原因之一是,存儲(chǔ)系統(tǒng)通常與計(jì)算系統(tǒng)斷開連接。通常使用外部存儲(chǔ)設(shè)備(例如,SAN)來存儲(chǔ)VM映像,這導(dǎo)致需要從SAN遠(yuǎn)程引導(dǎo)或在引導(dǎo)之前將數(shù)據(jù)復(fù)制到服務(wù)器的本地存儲(chǔ)器上。
超融合體系結(jié)構(gòu)通過將存儲(chǔ)物理距離計(jì)算實(shí)例更近,為配置速度帶來了極大的改進(jìn)。智能存儲(chǔ)供應(yīng)技術(shù)(例如重復(fù)數(shù)據(jù)刪除和自動(dòng)精簡配置)為基于商品的硬件帶來了類似于SAN的功能,而直接連接存儲(chǔ)的訪問則顯著降低甚至消除了實(shí)際部署中的存儲(chǔ)瓶頸。由于操作系統(tǒng)需要啟動(dòng),所以還是有一些開銷,但是也有一些技術(shù)可以縮小虛擬機(jī)的性能差距。
2遷移
容器支持者會(huì)爭辯說,工作負(fù)載遷移是不必要的,如果您的應(yīng)用程序本質(zhì)上是向外擴(kuò)展并由單個(gè)微服務(wù)組成的,那么他們可能是正確的。問題是,當(dāng)今世界上幾乎所有的數(shù)據(jù)中心仍然有“遺留”的應(yīng)用程序,無論出于何種原因都不能重新構(gòu)建。在這些情況下,VM遷移是絕對關(guān)鍵的功能。虛擬機(jī)實(shí)時(shí)遷移的主要用例是快速將有狀態(tài)的工作負(fù)載從一臺主機(jī)移動(dòng)到另一臺主機(jī),而不會(huì)造成任何停機(jī)。例如,在計(jì)劃維護(hù),節(jié)點(diǎn)故障或重新平衡基礎(chǔ)架構(gòu)以維護(hù)SLA時(shí),這是非常必要的。
另外,運(yùn)行在虛擬機(jī)上的容器也可以受益于這種能力。當(dāng)智能
私有云基礎(chǔ)設(shè)施檢測到硬件問題時(shí),可以無縫地將承載數(shù)百個(gè)容器的虛擬機(jī)遷移到另一個(gè)主機(jī),而不需要產(chǎn)生新的容器或出現(xiàn)停機(jī)時(shí)間,這比高級業(yè)務(wù)流程框架可以檢測到的要快得多。
3密度
在內(nèi)存管理方面,今天的虛擬化技術(shù)存在一個(gè)問題。雖然現(xiàn)在可以在機(jī)器上過度使用內(nèi)存,但通常會(huì)避免這種情況,因?yàn)榉e極的內(nèi)存過度使用的后果遠(yuǎn)大于好處。然而,50-80%的典型虛擬機(jī)分配的內(nèi)存從不使用,因?yàn)閷?shí)例的大小不正確或應(yīng)用程序的內(nèi)存消耗本質(zhì)上是突發(fā)的。容器不會(huì)遭受同樣的問題。它們使用的內(nèi)存少于虛擬機(jī),因?yàn)樗鼈児逃械毓蚕碇鳈C(jī)內(nèi)核和操作系統(tǒng)。然而,對于虛擬機(jī),可以通過實(shí)時(shí)跟蹤資源利用率來解決,以便執(zhí)行更好的調(diào)度,工作負(fù)載放置和快速的工作負(fù)載重新平衡。
如果您的基礎(chǔ)架構(gòu)具有足夠的智能性,可以為群集中的每個(gè)虛擬機(jī)執(zhí)行內(nèi)存頁面訪問并對其進(jìn)行跟蹤,則可以利用此洞察力來提高密度并為您的工作負(fù)載提供更一致的性能。
這就是它們的關(guān)系了。