虛擬化與容器區別


虛擬化特點:

1.虛擬化需要單獨安裝操作系統

2.運行在R3中,與硬件交互通過vmm(Hypervisor)進行轉換。

3.目前主流的三種:

  • 全虛擬化(通過二進制翻譯 R3指令交互到R0中的vmm由vmm將指令與硬件設備交互)對操作系統沒有任何更改
  • 操作系統輔助的半虛擬化(直接將虛擬化主機系統運行於R0中與虛擬化層進行交互,可以提高效率改善性能)需要修改操作系統內核。
  • 硬件輔助虛擬化(cpu支持虛擬化,cpu支持多個系統工作Ring0,vmm工作在根模式下根模式是為了執行特定的cpu指令增加的模式)需要硬件支持

4.使用兩種鏡像

 

 

 

容器特點:

1.容器不需要創建額外開銷的系統(容器基礎鏡像相對於傳統系統來說要小很多,因為在操作系統中分為bootfs,rootfs。大多數發行版的區別在於rootfs的不同包括etc bin root proc等目錄,所以容器會共用宿主機bootfs文件。將鏡像分成pull的時候一一加載進基礎鏡像的文件目錄中,無依賴關系的稱之為基礎鏡像。在其之上構建的分層鏡像屬於父子關系)

2.容器的網絡,pid,cgroup,mount namespace等都是通過linux內核中自帶的namespace來實現(通過pid創建namespace將其他資源掛載到該pid中,pid之下的namespace中生成的子進程可以與其他pid之下的子進程號一樣。所以k8s中監測的很重要一環就是pod中進程為0的程序,mount exec等操作都是/proc/父進程id/目錄/ ,網絡創建虛擬網卡並link到docker0中,docker0與etcd共享網絡空間,通過nat實現對外通信。)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM