一、首先我們來看看官方對docker和k8s的定義:
Docker是一個開源的應用容器引擎,開發者可以打包他們的應用及依賴到一個可移植的容器中,發佈到流行的Linux機器上,也可實現虛擬化。
(推薦教學:docker)
k8s是一個開源的容器叢集管理系統,可以實現容器叢集的自動化部署、自動擴充功能、維護等功能。
二、接下來我們來看看二者與傳統技術的對比:
1、從虛擬化角度
傳統的虛擬技術,在將實體硬體虛擬成多套硬體後,需要再每套硬體上都部署一個作業系統,接著在這些作業系統上執行對應的應用程式。
而Docker容器內的應用程式程序直接運行在宿主機(真實物理機)的核心上,Docker引擎將一些各自獨立的應用程式和它們各自的依賴打包,相互獨立直接運行於未在虛擬化的宿主機器硬體上,同時各個容器也沒有自己的內核,顯然比傳統虛擬機器更輕。
每個叢集有多個節點,每個節點可,我們的kuberbete就是管理這些應用程式所在的小型運作環境(container)而生。
2、從部署角度
傳統方式是將所有應用程式直接部署在同一個實體機器節點上,這樣每個App的依賴都是完全相同的,無法做到App之間隔離,當然,為了隔離,我們也可以透過創建虛擬機器的方式將App部署到其中,但這樣太過繁重。
現在我們透過部署Container容器的技術來部署應用,全部Container運行在容器引擎上即可。
既然嫌棄虛擬機器繁重,想用Docker,那好,你用吧,怎麼用呢?手動一個一個創建?當然不,故kubernetes技術便出現了,以kubernetes為代表的容器叢集管理系統,這時候就該上場表演了。
三、最後我們來分析docker和k8s的關係:
我們用kubernetes去管理Docker集群,也就是可以將Docker看成Kubernetes內部使用的低階元件。
另外,kubernetes不只支援Docker,也支援Rocket,這是另一種容器技術。
以上是docker和k8s有什麼關係的詳細內容。更多資訊請關注PHP中文網其他相關文章!