容器的歷史,可能比你想象的更為久遠
人們常說,IT的腳步日新月異,每天都有新的技術被創造、應用,每天也有舊的技術被淘汰,逐漸消失在人們的視野。但事實真的是這樣嗎?也許,這些新技術并沒有那么“新”,那些“舊技術”也只是在等待破繭成蝶的那一天。
舉個“栗子”,1999年VMware推出了第一個x86虛擬化產品VMware Virtual Platform并大獲成功,繼而成為當今虛擬化市場的領導者。對于一款產品來說,VMware的虛擬化確實是新的,但對于虛擬化本身來說,VMware虛擬化則是一種繼承和突破,有關虛擬化的概念與早期產品,可以追溯到1960年代,這中間整整相差了39年。
容器技術也是一樣,今天人們普遍將Docker視為容器的代名詞,但其實容器要比Docker古老得多了。
1979年,在Unix V7操作系統的開發中,為隔離出可供軟件進行構建和測試的環境,chroot(change root)系統調用程序橫空出現,這是容器史上第一道乍現的靈光。
接著到2000年,互聯網開始繁榮,納斯達克綜合指數站到了5132.52的峰值,在這一年,一家小型的共享環境托管提供商提出了FreeBSD Jails,以實現服務與客戶服務之間的明確區分。
FreeBSD Jails允許管理員將FreeBSD計算機系統劃分為幾個獨立的,較小的系統,稱為“Jails”,并能夠為每個系統和配置分配IP地址,真正意義上實現了進程的沙盒化。從而成為容器發展史上的一個重要轉折點。
此后,又經過了13年的蟄伏,直到2013年,隨著開源Docker項目容器鏡像格式和運行時的橫空出世,容器才真正廣受歡迎。
Docker誕生在云計算繁榮的背景下,這種使應用程序部署更精簡,更方便的方式,恰好符合云時代人們對于敏捷和靈活的要求。
Docker鏡像是一種標準化、輕量級、獨立、可執行的軟件包,其中包含運行一項功能所需的一切組件,例如代碼、運行時間庫、環境變量以及配置文件。從而避免了依賴運行容器的各種服務器的操作系統,實現 “build once,run anywhere”。
容器和Kubernetes
說到容器,不少人也把Kubernetes與Docker相提并論。其實兩者沒有直接的可比性,根基不同,解決的問題也不同。
Kubernetes最初由谷歌開發而來,目前由云原生計算基金會(Cloud Native Computing Foundation, CNCF)管理。Kubernetes的目的是為了解決容器不易于批量管理的問題,實現容器集群的自動化部署、自動擴縮容、維護等功能。
今天,Kubernetes已成為構建容器化平臺體系的默認抽象方案,從更大的意義上來說,Kuberntes也是容器發展的重大貢獻者之一。
試想一下,容器(Container)就是集裝箱,本身就是個大鐵盒子,其實沒有太多價值,單單靠它提高不了社會協作的效能。它只有流動起來,把貨物從一個車間運到另一個車間,從一個國家運送到另一個國家,才能極大提高生產力,這種連接才是其價值所在。
而Kubernetes就是這樣一個容器編排工具。在既有硬件資源的基礎上,啟動容器不需要關注具體運行的節點,各個容器之間仍能保持通信,信息在容器之間依然可以流動。這樣容器技術便可以付諸商用,整個軟件的開發交付流程就會變得高效和顛覆。
在具體操作中,Kubernetes使用主節點來調度和管理容器應用的執行過程。主節點提供環境來執Kubernetes控制面板,搭建集群,以及安排容器執行日程。Kubernetes容器在工作節點中的pod下執行。
一般情況下,每個pod運行一個容器實例,或者少數選定的實例——這些少數實例共享著需要共同執行的資源。一個Kubernetes pod包含操作系統和運行時間環境,該環境使容器應用能夠運行。容器網絡由Kubernetes控制面板、主節點和工作節點配置和管理,旨在提供容器應用所需的IP連接。
容器離不開編排
容器也離不開IT基礎架構
正如容器在Kubernetes的推動下得到了極大發展,一個位于底層的IT基礎架構如果對于容器有很好的支持,也必將為開發人員帶來事半功倍的效果。
去年,VMware發布的全新解決方案——VMware Tanzu和VMware Cloud Foundation 4,通過將容器與虛擬機統一為一體,用戶可以在vSphere7.0下大規模地并行運行Kubernetes服務和虛擬化應用,從而為應用的開發和運維帶來極大便利。
而作為市面上唯一全面集成VMware、預先配置VMware軟件的超融合一體機,VxRail也已同步升級到7.0版本,通過大幅降低使用Kubernetes和基于Kubernetes的開發者工具的復雜性,為用戶提供了從單一環境到Kubernetes的簡單直接路徑。
*戴爾易安信VxRail采用英特爾®至強®可擴展處理器,該處理器可以優化工作負載,可靠性強,還有高計算力、高穩定性和高效敏捷性,不僅幫助VxRail輕松滿足既定工作負載,也在云領域有極大的應用潛力。
從此IT管理員可以在熟悉的vSphere客戶端環境中使用Kubernetes,同時啟動并運行所有的關鍵應用程序。企業在一個統一平臺逐步實現應用現代化和新應用持續交付,獲得了更好的云原生體驗,為業務創新賦能。
此外,VxRail也支持獨立的開源Kubernetes。開發人員可選擇下載和配置Kubernetes版本,將節點作為虛擬機在vSphere上運行。使用獨立的Kubernetes集群來運行容器,需要手動下載、安裝、配置、檢驗和管理 Kubernetes軟件。
當然,更推薦的還是戴爾科技和VMware 聯合提供最佳技術解決方案來運行容器應用,用戶能夠更快速地采用云原生技術,并且更進一步采用數字化業務項目。VxRail和vSphere已成為在數據中心運行云原生Kubernetes容器應用的優選平臺。
容器or虛擬化?
兩者不是二選一
最后,不得不提的是容器與虛擬化的關系,不少人把容器當成是輕量級的虛擬化,由此難免與傳統虛擬化技術進行比較。其實,兩者并不等同。
傳統虛擬化是硬件的虛擬化,目標是建立一個完全獨立的沙箱式操作系統環境。而容器技術則純粹只是將應用系統相關的代碼、運行時間庫、環境變量以及配置文件打包成隔離的可執行沙箱環境,并沒有做任何硬件虛擬化。
也就是說,傳統虛擬化可以很容易地部署一臺VM,但仍需安裝各種執行環境所需要的程序并設定正確的環境參數才能運行應用,而容器可以大幅簡化并自動化這些工作。所以容器和虛擬化非但不是競爭關系,而且還是互補而共生的。這也是VMware將兩者合二為一的重要意義。
容器和虛擬化好比是企業邁向數字化未來“左膀右臂”,VMware為開發者掃清了障礙,而VxRail就是那個堅實底座!
尊敬的讀者
戴爾科技云平臺線上講堂
開課啦
6月2日 14:00
戴爾科技集團和VMware專家
在線與大家探討
容器的部署應用
如何在VxRail和
VMware上運行K8S