k8s和Docker關係簡單說明

2022-09-21 18:06:11 字數 1303 閱讀 8600

最近專案用到kubernetes(以下簡稱k8s,k和s之間有8個字母)。雖然之前也有簡單使用過,但最近發現k8s概念較多,命令也有些不夠用了,eixql故想藉此機會寫點東西,更全面認識並使用k8s。本篇文章目的:讓你更全面了解k8s概念,以及學到在工作中常用的操作。整體更偏向於原理和應用。在正式開始k8s之前,我們先看看k8s和docker的關係,分別從虛擬化角度、部署方式角度敘述why use容器,話不多說,開幹。

簡要介紹:

官方定義1:docker是乙個開源的應用容器引擎,開發者可以打包他們的應用及依賴到乙個可移植的容器中,發布到流行的linux機器上,也可實現虛擬化。

官方定義2:k8s是乙個開源的容器集群管理系統,可以實現容器集群的自動化部署、自動擴縮容、維護等功能。

與傳統技術對比:

接下來我們看兩張經典的圖:

一、從虛擬化角度:

圖1上圖是docker容器(可用k8s管理的玩意兒)與傳統虛擬化方式的不同之處,傳統的虛擬技術,在將物理硬體虛擬成多套硬體後,需要再每套硬體上都部署乙個作業系統,接著在這些作業系統上執行相應的應用程式。而docker容器內的應用程式程序直接執行在宿主機(真實物理機)的核心上,docker引擎將一些各自獨立的應用程式和它們各自的依賴打包,相互獨立直接執行於未經虛擬化的宿主機硬體上,同時各個容器也沒有自己的核心,顯然比傳統虛擬機器更輕便。 每個集群有多個節點,每個節點可,我們的kuberb就是管理這些應用程式所在的小執行環境(container)而生。

二、從部署角度

圖2注意,大家別把這幅圖與上面docker的那張圖混淆了,圖1是從虛擬化角度,說明了為應用提供必要的執行環境所需要做的虛擬化操作(即:傳統:虛擬出的虛擬機器裝作業系統、docker:容器引擎管理下的容器)。

而圖2是在這些具體執行環境上進行真實應用部署時的情況,傳統方式是將所有應用直接部署在同乙個物理機器節點上,這樣每個app的依賴都是完全相同www.cppcns.com的,無法做到app之間隔離,當然,為了隔離,我們也可以通過建立虛擬機器的方式來將app部署到其中(就像圖1上半部分那樣),但這樣太過繁重,故比虛擬機器更輕便的docker技術出現,現在我們通過部署container容器的技術來部署應用,全部container執行在容器引擎上即可。既然嫌棄虛擬機器繁重,想用docker,那好,你用吧,怎麼用呢?手動乙個乙個建立?當然不,故kubernetes技術便出現了,以kubernetes為代表的容器集群管理系統,這時候就該上場表演了。

說白了,我們用kubernetes去管理docker集群,即可以將docker看成kubernetes內部使用的低級別元件。另外,kubernetes不僅僅支援docker,還支援rocket,這是另一種容器技術。希望我這篇文章中簡單的描述能讓你對兩者有所理解和認識。

docker和k8s版本對應關係

截止2019.08.09最新的版本支援資訊 kubernetes 1.15.2 docker版本1.13.1 17.03 17.06 17.09 18.06 18.09 kubernetes 1.15.1 docker版本1.13.1 17.03 17.06 17.09 18.06 18.09 ku...

docker與k8s的關係

docker和k8s的關係 vmware pivotal與google cloud合作推出的pks,這個cloud foundry container runtime的全新商業支援版本致力於讓虛擬化管理員輕鬆執行和運維kubernetes,從而支援開發團隊在vsphere或google cloud ...

k8s與Docker有啥關係

簡要介紹 官方定義1 docker是乙個開源的應用容器引擎,開發者可以打包他們的應用及依賴到乙個可移植的容器中,發布到流行的linux機器上,也可實現虛擬化。官方定義2 k8s是乙個開源的容器集群管理系統,可以實現容器集群的自動化部署 自動擴縮容 維護等功能。與傳統技術對比 接下來我們看兩張經典的圖...