2022-10-08 分類: 網站建設
Hypervisor技術從一開始就是云計算的基石之一。然而,近年來容器技術的爆發,讓這種虛擬化技術開始被認為是傳統方法。有不少人認為,容器的普及對虛擬機形成了沖擊,于是就有了早些年的容器與虛擬機之爭。
經過幾年的技術發展和大規模實踐,雖然許多企業正在將基于虛擬機的應用程序遷移到容器,但事實上虛擬機在數據中心和公有云中仍然普遍存在。一方面,容器并沒有完全替代虛擬機,另一方面虛擬機也在積極支持容器,兩者共存的情形反而越來越普遍。
今天就來聊聊虛擬機和容器到底有什么區別,為什么兩者會走向共存,以及將來會走向何方?
虛擬機和容器各有優勢
虛擬機和容器誕生的初衷,都是為了更好的提高資源利用率,但兩者的區別在于:虛擬機是操作系統級別的資源隔離,而容器本質上是進程級的資源隔離。
虛擬機(Virtual Machine),是指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。每個虛擬機都有獨立的CMOS、硬盤和操作系統,可以像使用實體機一樣對虛擬機進行操作。
虛擬機的運行離不開Hypervisor,Hypervisor是運行在基礎物理服務器和操作系統之間的中間軟件層,可允許多個操作系統和應用共享硬件。
簡單來說,服務器硬件、Hypervisor、虛擬機之間的關系在于,每個虛擬機都有一個完整的操作系統,虛擬機內部署的應用可以使用整個操作系統的資源。
虛擬機的出現,解決了早期在物理服務器上部署應用但無法為其應用程序定義資源邊界而導致的資源分配問題。
但是在使用虛擬化一段時間后,會發現它存在一些問題,例如:虛擬機的系統層會占用比較多物理機的資源,需要更進一步提高服務器的資源利用率;當需要遷移虛擬機服務程序時,需要遷移整個虛擬機,遷移流程復雜。
為了解決這些問題,容器就出現了。
容器技術,可以理解為操作系統虛擬化技術,它是一種輕量級的虛擬化技術。通過內核創建多個虛擬的操作系統實例(內核和庫),來隔離不同的進程(容器),不同的實例相互隔離,相互之間完全無感知。可以簡單地理解為容器就是一個進程沙盒,來提供進程級的隔離。
相比于虛擬機,容器沒有自己的操作系統,而是通過容器引擎來實現共享宿主機操作系統內核,從而減少需要運行多個操作系統的開銷。
作為一個標準的軟件單元,容器將應用部署所需的代碼和依賴項打包為鏡像,可以快速可靠地從一個計算環境運行到另一個環境。
因此,容器很大的優勢在于,它啟動時間很快,可以達到秒級,而且對資源的利用率很高,如:一臺主機可以同時運行幾千個Docker容器。此外,它占的空間很小,虛擬機一般要幾GB到幾十GB,而容器只需要MB級甚至KB級。
總的來說,容器和虛擬機具有相似的資源隔離和分配優勢,但功能不同。容器虛擬化的是操作系統而不是硬件,因此容器更加輕便高效。但是如果用戶需要使用在不同操作系統上運行的不同應用程序,虛擬機就能提供可靠的解決方案和更好的安全性。
因此,如今最有效和最常用的策略是,擁有一臺具有多個虛擬機的物理機,每個虛擬機都有多個容器。容器和虛擬機一起使用,為部署和管理應用提供了極大的靈活性。
虛擬機和K8s相互融合
可以看到,容器和虛擬機根本就存在誰取代誰,而是相互融合的狀態。這也帶來了新的問題,即如何同時管理虛擬機和容器技術,成為企業的一個普遍的需求。
作為虛擬化技術的最主要推手,VMware很早就做出了反映。此前VMware通過在虛擬化平臺上外掛PKS(Pivotal與VMware共同推出的一個K8s平臺),來實現虛機與容器的同時管理。但畢竟是外掛,其效率和管理方便性上都有不足。
去年的VMworld大會上,VMware發布Tanzu 品牌計劃,宣布在虛擬化技術中原生地提供對容器技術的支持。VMware的Tanzu把虛擬機和K8s結合起來,對虛擬機和容器以及物理機統一進行管理,它能實現跨物理機、虛擬機以及內部數據中心、跨多個云來管理應用,從而為工作負載提供一個統一的支撐。
今年3月Tanzu正式亮相,VMware最新一代虛擬化平臺vSphere 7對外發布,vSphere 7迎來了近10年比較大的變革。VMware對vSphere進行了重構,將K8s嵌入vSphere的控制平面,讓它成為一個K8s原生平臺,從而原生地支持K8s。
這樣,那些VMware的傳統用戶無需在虛擬機和K8s容器環境之間做出選擇,從而能自由在vSphere上進行現代應用程序開發和運營,同時繼續利用現有的技術、工具和技能組合投資。
另一方面,容器廠商也認識到了虛擬化的客觀存在,也在擁抱虛擬化技術,kubevirt 就是基于這個目的推出的。
kubevirt是 Red hat 開源的以容器方式運行虛擬機的項目,使用容器的Image Registry去創建虛擬機并提供虛機的生命周期管理。在紅帽4月底舉行的年度技術大會Red Hat Summit 2020大會上,紅帽宣布推出OpenShift 虛擬化的技術預覽,OpenShift 虛擬化就源自KubeVirt開源項目。企業可以通過這一功能,在整合了云原生與傳統工作負載的OpenShift上開發、部署和管理由虛擬機、容器和無服務器構成的應用。
雖然VMware和紅帽的從不同出發點出發,但目的是一樣的,而這背后的推動力則是企業的現實需求。對用戶而言,它們的行動無疑是受歡迎的,這能讓企業少了后顧之憂,不再需要進行非此即彼的選擇,不用糾結容器究竟應該部署在虛擬機還是裸機上,從而可以更靈活支持未來的各種應用。
虛擬機和K8s的未來
目前,虛擬機與容器技術的結合已經成為一個事實,不僅如此,虛擬機也正在成為云原生架構的一部分——這就是容器原生虛擬化。以K8s為代表的容器,運行在基于虛擬機的基礎設施之上,而基于虛擬機的工作負載,仍然是IT組合的重要組成部分。
未來,虛擬機和K8s的融合會呈現哪些趨勢呢?
K8s編排微型虛擬機(如Kata Containers、Firecracker或gVisor)
微型虛擬機不像傳統虛擬化那樣提供完整的“機器”,而是專注于提供足夠的虛擬機,來成功執行應用程序容器或功能。因此,微型虛擬機旨在提供相對于標準Linux容器的硬隔離,同時很大限度地減少傳統虛擬機在冷啟動時間和性能方面的弱勢。
對于某些用戶而言,可能需要更強大的多租戶隔離。因此,這種方式能夠為不受信任的工作負載提供更嚴格的多租戶隔離。
K8s編排標準虛擬機
以前,虛擬化堆棧是與K8s和云原生是完全獨立的孤島——獨立的工作流程、獨立的工具、獨立的團隊等。容器原生虛擬化的概念,使虛擬機能夠遵循與K8s中基于容器的應用程序相同的工作流程。
現在有了像KubeVirt這樣的開源項目,就可以實現容器原生虛擬化。K8s編排引擎可以應用于管理在云或虛擬化平臺上運行的標準虛擬機,K8s開始使容器和虛擬機的混合運維成為可能。
裸機上的K8s(沒有虛擬機)
雖然目前大多數K8s平臺都部署在基于虛擬機的基礎設施上,但容器并不依賴于虛擬機來運行,在裸機上運行K8s和容器的實踐還在繼續增長。
在裸機上運行K8s將使應用程序能夠充分利用底層硬件,這對于為K8s帶來更多機器和性能敏感應用程序的用戶來說非常重要。在裸機上運行K8s和容器,還可以幫助用戶減少虛擬機蔓延并簡化操作。這對于虛擬機而言,不算是個好消息。
總體而言,虛擬機和容器有著各自的優勢,雖然在應用場景上有一些重疊,但主要應用場景還是有區別的。比如,虛擬機更適合運行多個操作系統資源和功能的場景,而容器更適合在更少的服務器上運行更多的應用。
大部分情況下,多數企業會同時使用虛擬機和容器,特別是考慮到大多數企業在此前已經廣泛部署了虛擬化技術。鑒于此,容器和虛擬化應當會在相當長時間內共存。
網頁題目:容器與虛擬機之爭?不存在的
當前URL:http://m.newbst.com/news33/203433.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、小程序開發、網站營銷、靜態網站、移動網站建設、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容