k8s是Kubernetes的縮寫,Google 于 2014 年開源了 Kubernetes 項目 。
一、k8s的歷史演變

文章插圖
k8s的演變過程:首先從傳統(tǒng)的服務-->虛擬機部署-->容器部署-->k8s 。
k8s的由來,歸根結(jié)底是容器的由來,搞清楚容器的來歷,k8s是在容器的基礎(chǔ)上,方便容器管理、維護,包括聲明式配置和自動化 。
1、 Docker的由來Docker 是一個開源的應用容器引擎,是一種資源虛擬化技術(shù),讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,虛擬化技術(shù)演歷路徑可分為三個時代:
1)物理機時代物理機時代,多個應用程序可能跑在一臺物理機器上 。

文章插圖
當多個應用程序跑在一臺物理機上的時候,無法為物理機中的應用程序定義資源邊界,這會導致資源分配問題 。例如,如果多個應用程序在同一臺物理服務器上運行,則可能會出現(xiàn)一個應用程序占用大部分資源,而導致其他應用程序的性能會不佳的情況 。一個解決方案是在不同的物理服務器上運行每個應用程序 。但這并沒有擴展,因為資源沒有得到充分利用,而且組織維護許多物理服務器的成本很高 。
2)虛擬機時代一臺物理機器啟動多個虛擬機實例,一個虛擬機跑多個應用程序,每個虛擬機都是完整的獨立的系統(tǒng) 。

文章插圖
為了解決多個應用部署在同一臺物理機資源分配不均的問題,引入了虛擬化 。它可以在單個物理服務器的 CPU 上運行多個虛擬機 (VM) 。應用程序在虛擬機之間可以實現(xiàn)隔離,并提供一定程度的安全性,一個應用程序的信息不能被另一個應用程序自由訪問 。
虛擬化更好地利用物理服務器中的資源并有更好的可擴展性,可以輕松添加或更新應用程序,降低硬件成本等等 。
每個 虛擬機 都是在虛擬化硬件之上運行所有組件的完整機器,包括它自己的操作系統(tǒng) 。
虛擬機的性能損耗是非常大的
3)容器化時代容器化時代,一臺物理機上啟動多個容器實例,一個容器跑多個應用程序 。

文章插圖
容器類似于虛擬機,但它們具有松隔離性,可以在應用程序之間共享操作系統(tǒng)(OS) 。因此,容器被認為是輕量級的 。
與 VM 類似,容器有自己的文件系統(tǒng)、CPU 、內(nèi)存、進程等 。由于它們與底層基礎(chǔ)架構(gòu)分離,因此它們可以跨云和操作系統(tǒng)分布移植 。
容器之所以流行,是因為它們提供了額外的好處,例如:
- 敏捷的應用程序創(chuàng)建和部署:與使用 VM 映像相比,容器映像創(chuàng)建的簡便性和效率更高 。
- 持續(xù)開發(fā)、集成和部署:提供可靠且頻繁的容器映像構(gòu)建和部署以及快速高效的回滾(由于映像不變性) 。
- Dev 和 Ops 的關(guān)注點分離:在構(gòu)建/發(fā)布時而不是部署時創(chuàng)建應用程序容器映像,從而將應用程序與基礎(chǔ)架構(gòu)解耦 。
- 可觀察性:不僅可以顯示操作系統(tǒng)級別的信息和指標,還可以顯示應用程序運行狀況和其他信號 。
- 開發(fā)、測試和生產(chǎn)之間的環(huán)境一致性:在筆記本電腦上運行與在云中運行環(huán)境相同 。
- 以應用程序為中心的管理:將抽象級別從在虛擬硬件上運行操作系統(tǒng)提高到使用邏輯資源在操作系統(tǒng)上運行應用程序 。
- 松散耦合、分布式、彈性、自由的微服務:應用程序被分解成更小的、獨立的部分,并且可以動態(tài)部署和管理——而不是在一臺大型單一用途機器上運行的單一堆棧 。
經(jīng)驗總結(jié)擴展閱讀
- 高鐵能帶1000ml的洗發(fā)水嗎
- 【炫麗】從0開始做一個WPF+Blazor對話小程序
- 寬帶網(wǎng)絡(luò)電視怕打雷嗎
- 藕粉顆粒狀的好還是粉狀的
- 裙帶菜泡發(fā)后可以直接吃嗎
- 水質(zhì)檢測多少數(shù)值合格
- 蛋糕粉做饅頭要不要加酵母
- 鈉鈣玻璃杯能倒開水嗎
- 洗衣機怎么清理里面的臟東西
- 五仁餡料怎么做更松軟
