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