知道為什么應(yīng)該使用容器。但是您知道部署容器得用哪種基礎(chǔ)設(shè)施嗎? 作為托管Docker和其他容器環(huán)境的平臺(tái),裸機(jī)服務(wù)器是否比虛擬機(jī)更好?
答案當(dāng)然取決于很多因素,本文將通過列舉裸機(jī)服務(wù)器和虛擬機(jī)上運(yùn)行容器的優(yōu)缺點(diǎn)來討論。我將專注于Docker,但這里分享的經(jīng)驗(yàn)通常適用于任何類型的容器平臺(tái)。
裸機(jī)VS虛擬機(jī)
權(quán)衡裸機(jī)服務(wù)器和虛擬化主機(jī)環(huán)境各自的優(yōu)缺點(diǎn)不是一個(gè)新課題,CTO們在21世紀(jì)初就開始思考了,當(dāng)時(shí)虛擬化剛開始在數(shù)據(jù)中心推廣,Docker則還沒出現(xiàn)。
簡而言之,裸機(jī)服務(wù)器的主要優(yōu)點(diǎn)包括:
更高的性能,因?yàn)闆]有系統(tǒng)資源浪費(fèi)在硬件模擬上;充分利用所有機(jī)器資源,高需求期間無閑置;更簡單的管理,因?yàn)橹鳈C(jī)、網(wǎng)絡(luò)和磁盤等硬件基礎(chǔ)架構(gòu)更少。
虛擬機(jī)則具有以下優(yōu)點(diǎn):
通過在服務(wù)器之間傳輸虛擬機(jī)映像,輕松實(shí)現(xiàn)在主機(jī)間移動(dòng)應(yīng)用程序;不同虛擬機(jī)中運(yùn)行的應(yīng)用程序?qū)崿F(xiàn)隔離,不僅有助于安全,也能降低管理復(fù)雜度。通過在同一類型虛擬機(jī)上部署所有應(yīng)用程序,即使底層服務(wù)器是異構(gòu)的,也能實(shí)現(xiàn)軟件環(huán)境的跨平臺(tái)一致性。
但是虛擬機(jī)也有一些缺點(diǎn),包括:
服務(wù)器資源可能未完全使用。例如,如果您在服務(wù)器主機(jī)上分配存儲(chǔ)空間以創(chuàng)建虛擬機(jī)磁盤映像,即使磁盤連接的虛擬機(jī)不使用全部空間,該存儲(chǔ)空間也不可用于其他用途。虛擬機(jī)無法直接訪問物理硬件。如果您希望虛擬機(jī)能夠?qū)⒂?jì)算操作轉(zhuǎn)移到主機(jī)的GPU上,您很難或無法實(shí)現(xiàn),因?yàn)樘摂M機(jī)是從底層主機(jī)環(huán)境中抽象出來的。物理服務(wù)器直接訪問硬件,虛擬服務(wù)器訪問軟件模擬的硬件。
現(xiàn)代虛擬化平臺(tái)提供了一些技巧,可以幫助管理員解決上述限制。例如,您可以創(chuàng)建動(dòng)態(tài)磁盤映像,該映像隨著虛擬機(jī)的使用情況的增加而擴(kuò)展,以避免虛擬機(jī)實(shí)際使用之前鎖定主機(jī)上的存儲(chǔ)空間。在某些情況下,您還可以利用直通功能為虛擬機(jī)提供直接訪問主機(jī)物理硬件的功能。
然而,這些功能不是總能生效,例如他們不支持所有的主機(jī)或操作系統(tǒng),他們還會(huì)產(chǎn)生額外的管理負(fù)擔(dān)。如果您要運(yùn)行的應(yīng)用程序需要裸機(jī)訪問,最好在裸機(jī)服務(wù)器上運(yùn)行這些應(yīng)用程序。
或者,您可以在裸機(jī)服務(wù)器上的容器中運(yùn)行應(yīng)用程序,以便充分利用這兩個(gè)方面。
來源:機(jī)房360
石家莊服務(wù)器托管 石家莊服務(wù)器租用 石家莊機(jī)柜租用 石家莊機(jī)房