k8s和Docker關(guān)系簡(jiǎn)單說(shuō)明
最近項(xiàng)目用到kubernetes(以下簡(jiǎn)稱k8s,k和s之間有8個(gè)字母)。雖然之前也有簡(jiǎn)單使用過(guò),但最近發(fā)現(xiàn)k8s概念較多,命令也有些不夠用了,故想借此機(jī)會(huì)寫點(diǎn)東西,更全面認(rèn)識(shí)并使用k8s。本篇文章目的:讓你更全面了解k8s概念,以及學(xué)到在工作中常用的操作。整體更偏向于原理和應(yīng)用。在正式開始k8s之前,我們先看看k8s和Docker的關(guān)系,分別從虛擬化角度、部署方式角度敘述why use容器,話不多說(shuō),開干。
目前發(fā)現(xiàn)并沒(méi)有將kubernetes和Docker技術(shù)產(chǎn)生背景和需求進(jìn)行比較的文章,本文從最純正的官方定義角度出發(fā)并展開,闡述二者產(chǎn)生背景及與傳統(tǒng)技術(shù)對(duì)比。
簡(jiǎn)要介紹:
官方定義1:Docker是一個(gè)開源的應(yīng)用容器引擎,開發(fā)者可以打包他們的應(yīng)用及依賴到一個(gè)可移植的容器中,發(fā)布到流行的Linux機(jī)器上,也可實(shí)現(xiàn)虛擬化。
官方定義2:k8s是一個(gè)開源的容器集群管理系統(tǒng),可以實(shí)現(xiàn)容器集群的自動(dòng)化部署、自動(dòng)擴(kuò)縮容、維護(hù)等功能。
與傳統(tǒng)技術(shù)對(duì)比:
接下來(lái)我們看兩張經(jīng)典的圖:
一、從虛擬化角度:
圖1
上圖是Docker容器(可用k8s管理的玩意兒)與傳統(tǒng)虛擬化方式的不同之處,傳統(tǒng)的虛擬技術(shù),在將物理硬件虛擬成多套硬件后,需要再每套硬件上都部署一個(gè)操作系統(tǒng),接著在這些操作系統(tǒng)上運(yùn)行相應(yīng)的應(yīng)用程序。而Docker容器內(nèi)的應(yīng)用程序進(jìn)程直接運(yùn)行在宿主機(jī)(真實(shí)物理機(jī))的內(nèi)核上,Docker引擎將一些各自獨(dú)立的應(yīng)用程序和它們各自的依賴打包,相互獨(dú)立直接運(yùn)行于未經(jīng)虛擬化的宿主機(jī)硬件上,同時(shí)各個(gè)容器也沒(méi)有自己的內(nèi)核,顯然比傳統(tǒng)虛擬機(jī)更輕便。 每個(gè)集群有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)可,我們的kuberbete就是管理這些應(yīng)用程序所在的小運(yùn)行環(huán)境(container)而生。
二、從部署角度
圖2
注意,大家別把這幅圖與上面Docker的那張圖混淆了,圖1是從虛擬化角度,說(shuō)明了為應(yīng)用提供必要的運(yùn)行環(huán)境所需要做的虛擬化操作(即:傳統(tǒng):虛擬出的虛擬機(jī)裝操作系統(tǒng)、Docker:容器引擎管理下的容器)。
而圖2是在這些具體運(yùn)行環(huán)境上進(jìn)行真實(shí)應(yīng)用部署時(shí)的情況,傳統(tǒng)方式是將所有應(yīng)用直接部署在同一個(gè)物理機(jī)器節(jié)點(diǎn)上,這樣每個(gè)App的依賴都是完全相同的,無(wú)法做到App之間隔離,當(dāng)然,為了隔離,我們也可以通過(guò)創(chuàng)建虛擬機(jī)的方式來(lái)將App部署到其中(就像圖1上半部分那樣),但這樣太過(guò)繁重,故比虛擬機(jī)更輕便的Docker技術(shù)出現(xiàn),現(xiàn)在我們通過(guò)部署Container容器的技術(shù)來(lái)部署應(yīng)用,全部Container運(yùn)行在容器引擎上即可。既然嫌棄虛擬機(jī)繁重,想用Docker,那好,你用吧,怎么用呢?手動(dòng)一個(gè)一個(gè)創(chuàng)建?當(dāng)然不,故kubernetes技術(shù)便出現(xiàn)了,以kubernetes為代表的容器集群管理系統(tǒng),這時(shí)候就該上場(chǎng)表演了。
說(shuō)白了,我們用kubernetes去管理Docker集群,即可以將Docker看成Kubernetes內(nèi)部使用的低級(jí)別組件。另外,kubernetes不僅僅支持Docker,還支持Rocket,這是另一種容器技術(shù)。希望我這篇文章中簡(jiǎn)單的描述能讓你對(duì)兩者有所理解和認(rèn)識(shí)。
到此這篇關(guān)于k8s和Docker關(guān)系簡(jiǎn)單說(shuō)明的文章就介紹到這了,更多相關(guān)k8s和Docker關(guān)系內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
阿里云ECS部署Docker服務(wù)的實(shí)現(xiàn)步驟
本文主要介紹了阿里云ECS部署Docker服務(wù)的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06利用OpenVSwitch在多臺(tái)主機(jī)上部署Docker的教程
這篇文章主要介紹了利用OpenVSwitch在多臺(tái)主機(jī)上部署Docker的教程,包括配置多個(gè)容器的IP地址等內(nèi)容,需要的朋友可以參考下2015-03-03Docker Swarm實(shí)現(xiàn)服務(wù)的滾動(dòng)更新的示例代碼
這篇文章主要介紹了Docker Swarm實(shí)現(xiàn)服務(wù)的滾動(dòng)更新的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Docker安裝RabbitMQ AMQP協(xié)議及重要角色
這篇文章主要為大家介紹了Docker安裝RabbitMQ AMQP協(xié)議和主要角色詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05Docker Desktop啟動(dòng)失敗的解決(Docker failed to i
本文主要介紹了Docker Desktop啟動(dòng)失敗的解決(Docker failed to initialize Docker Desktop is shutting down),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03使用Dockerfile實(shí)現(xiàn)數(shù)據(jù)卷的掛載問(wèn)題(推薦)
Dockerfile就是一個(gè)可以用來(lái)構(gòu)建鏡像的文件,可以理解為一個(gè)腳本文件,可以通過(guò)這個(gè)腳本文件自定義生成一個(gè)我們想要的鏡像,鏡像都是一層一層的,里面的每一條命令就是一層,本文給大家介紹使用Dockerfile實(shí)現(xiàn)數(shù)據(jù)卷的掛載,感興趣的朋友一起看看吧2022-03-03詳解用Docker搭建Laravel和Vue項(xiàng)目的開發(fā)環(huán)境
這篇文章主要介紹了詳解用Docker搭建Laravel和Vue項(xiàng)目的開發(fā)環(huán)境,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03