這篇文章主要介紹了k8s和Docker關系簡單說明,本文利用圖文講解的很透徹,有需要的同學可以研究下
最近項目用到kubernetes(以下簡稱k8s,k和s之間有8個字母)。雖然之前也有簡單使用過,但最近發現k8s概念較多,命令也有些不夠用了,故想借此機會寫點東西,更全面認識并使用k8s。本篇文章目的:讓你更全面了解k8s概念,以及學到在工作中常用的操作。整體更偏向于原理和應用。在正式開始k8s之前,我們先看看k8s和Docker的關系,分別從虛擬化角度、部署方式角度敘述why use容器,話不多說,開干。
目前發現并沒有將kubernetes和Docker技術產生背景和需求進行比較的文章,本文從最純正的官方定義角度出發并展開,闡述二者產生背景及與傳統技術對比。
簡要介紹:
官方定義1:Docker是一個開源的應用容器引擎,開發者可以打包他們的應用及依賴到一個可移植的容器中,發布到流行的Linux機器上,也可實現虛擬化。
官方定義2:k8s是一個開源的容器集群管理系統,可以實現容器集群的自動化部署、自動擴縮容、維護等功能。
與傳統技術對比:
接下來我們看兩張經典的圖:
一、從虛擬化角度:
Docker容器(可用k8s管理的玩意兒)與傳統虛擬化方式的不同之處:傳統的虛擬技術在將物理硬件虛擬成多套硬件后,需要在每套硬件上都部署一個操作系統,接著在這些操作系統上運行相應的應用程序。
而Docker容器內的應用程序進程直接運行在宿主機(真實物理機)的內核上,Docker引擎將一些各自獨立的應用程序和它們各自的依賴打包,相互獨立直接運行于未經虛擬化的宿主機硬件上,同時各個容器也沒有自己的內核,顯然比傳統虛擬機更輕便。每個集群有多個節點,每個節點可運行多個容器,我們的kuberbete就是管理這些應用程序所在的小運行環境(container)而生。
二、從部署角度
從虛擬化角度,說明了為應用提供必要的運行環境所需要做的虛擬化操作(即:傳統:虛擬出的虛擬機裝操作系統、Docker:容器引擎管理下的容器)。
而在這些具體運行環境上進行真實應用部署時的情況,傳統方式是將所有應用直接部署在同一個物理機器節點上,這樣每個App的依賴都是完全相同的,無法做到App之間隔離,當然。
為了隔離,我們也可以通過創建虛擬機的方式來將App部署到其中,但這樣太過繁重,故比虛擬機更輕便的Docker技術出現,現在我們通過部署Container容器的技術來部署應用,全部Container運行在容器引擎上即可。
既然嫌棄虛擬機繁重,想用Docker,那好,你用吧,怎么用呢?手動一個一個創建?當然不,故kubernetes技術便出現了,以kubernetes為代表的容器集群管理系統,這時候就該上場表演了。
說白了,我們用kubernetes去管理Docker集群,即可以將Docker看成Kubernetes內部使用的低級別組件。另外,kubernetes不僅僅支持Docker,還支持Rocket,這是另一種容器技術。希望我這篇文章中簡單的描述能讓你對兩者有所理解和認識。
到此這篇關于k8s和Docker關系簡單說明的文章就介紹到這了。
https://blog.csdn.net/yanghaolong/article/details/86680282
編輯:jq
-
開源
+關注
關注
3文章
3309瀏覽量
42471 -
docker容器
+關注
關注
0文章
30瀏覽量
3326
原文標題:k8s 和 Docker 關系簡單說明
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論