當(dāng)前位置:首頁 > 公眾號(hào)精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]隨著k8s作為容器編排解決方案變得越來越流行,有些人開始拿Docker和k8s進(jìn)行對(duì)比,不禁問道:Docker不香嗎?

隨著k8s 作為容器編排解決方案變得越來越流行,有些人開始拿 Docker 和 k8s進(jìn)行對(duì)比,不禁問道:Docker 不香嗎?

k8s 是kubernets的縮寫,’8‘代表中間的八個(gè)字符。

其實(shí) Docker 和 k8s 并非直接的競(jìng)爭(zhēng)對(duì)手,它倆相互依存。Docker 是一個(gè)容器化平臺(tái),而 k8s 是 Docker 等容器平臺(tái)的協(xié)調(diào)器。

容器化時(shí)代來了

虛擬化技術(shù)已經(jīng)走過了三個(gè)時(shí)代,沒有容器化技術(shù)的演進(jìn)就不會(huì)有 Docker 技術(shù)的誕生。

Docker不香嗎?為什么還要用k8s 虛擬化技術(shù)演進(jìn)

(1)物理機(jī)時(shí)代:多個(gè)應(yīng)用程序可能會(huì)跑在一臺(tái)機(jī)器上。

Docker不香嗎?為什么還要用k8s 物理機(jī)時(shí)代

(2)虛擬機(jī)時(shí)代:一臺(tái)物理機(jī)器安裝多個(gè)虛擬機(jī)(VM),一個(gè)虛擬機(jī)跑多個(gè)程序。

Docker不香嗎?為什么還要用k8s 虛擬機(jī)時(shí)代

(3)容器化時(shí)代:一臺(tái)物理機(jī)安裝多個(gè)容器實(shí)例(container),一個(gè)容器跑多個(gè)程序。

Docker不香嗎?為什么還要用k8s 容器化時(shí)代

容器化解決了軟件開發(fā)過程中一個(gè)令人非常頭疼的問題,用一段對(duì)話描述:

測(cè)試人員:你這個(gè)功能有問題。

開發(fā)人員:我本地是好的啊。

開發(fā)人員編寫代碼,在自己本地環(huán)境測(cè)試完成后,將代碼部署到測(cè)試或生產(chǎn)環(huán)境中,經(jīng)常會(huì)遇到各種各樣的問題。明明本地完美運(yùn)行的代碼為什么部署后出現(xiàn)很多 bug,原因有很多:不同的操作系統(tǒng)、不同的依賴庫等,總結(jié)一句話就是因?yàn)楸镜丨h(huán)境和遠(yuǎn)程環(huán)境不一致。

容器化技術(shù)正好解決了這一關(guān)鍵問題,它將軟件程序和運(yùn)行的基礎(chǔ)環(huán)境分開。開發(fā)人員編碼完成后將程序打包到一個(gè)容器鏡像中,鏡像中詳細(xì)列出了所依賴的環(huán)境,在不同的容器中運(yùn)行標(biāo)準(zhǔn)化的鏡像,從根本上解決了環(huán)境不一致的問題。

容器化技術(shù)的尖刀武器

Docker不香嗎?為什么還要用k8s 容器化技術(shù)的特點(diǎn)
  • 可移植性:不依賴具體的操作系統(tǒng)或云平臺(tái),比如在阿里云或騰訊云直接隨意遷移。

  • 占地小:容器只需要其應(yīng)用程序以及它需要運(yùn)行的所有容器和庫的依賴清單,不需要將所有的依賴庫都打包在一起。

  • 共享 bin 和 lib:不同的容器可以共享 bin 和 lib,進(jìn)一步節(jié)省了空間。

Docker 橫空出世

2010年一位年輕小伙子在美國(guó)舊金山成立了一家名叫【dotCloud】的公司, 開發(fā)了 Docker的核心技術(shù),從此開啟了容器技術(shù)的時(shí)代。

Docker不香嗎?為什么還要用k8s Docker原公司名

后面 dotCloud 公司將自己的容器技術(shù)進(jìn)行了簡(jiǎn)化和標(biāo)準(zhǔn)化,取名為 Docker,就是大家熟悉的鯨魚 logo。

Docker不香嗎?為什么還要用k8s Docker新logo

2013年dotCloud 公司宣布將 Docker 開源,隨著越來越多的工程師發(fā)現(xiàn)了它的優(yōu)點(diǎn), Docker 的人氣迅速攀升,成為當(dāng)時(shí)最火爆的開源技術(shù)之一。

當(dāng)前有30%以上的企業(yè)在其AWS環(huán)境中使用Docker,并且這個(gè)數(shù)字還在繼續(xù)增長(zhǎng)。

Docker不香嗎?為什么還要用k8s Docker使用率越來越高

Docker怎么用?

其實(shí)大多數(shù)人談?wù)?Docker 時(shí)說的是 Docker Engine,這只是一個(gè)構(gòu)建和運(yùn)行的容器。

在運(yùn)行容器前需要編寫Docker File,通過 dockerFile 生成鏡像,然后才能運(yùn)行 Docker 容器。

Docker File 定義了運(yùn)行鏡像(image)所需的所有內(nèi)容,包括操作系統(tǒng)和軟件安裝位置。一般情況下都不需要從頭開始編寫 Docker File,在 Docker Hub 中有來自世界各地的工程師編寫好的鏡像,你可以基于此修改。

編排系統(tǒng)的需求催生 k8s

盡管Docker為容器化的應(yīng)用程序提供了開放標(biāo)準(zhǔn),但隨著容器越來越多出現(xiàn)了一系列新問題:

  • 如何協(xié)調(diào)和調(diào)度這些容器?
  • 如何在升級(jí)應(yīng)用程序時(shí)不會(huì)中斷服務(wù)?
  • 如何監(jiān)視應(yīng)用程序的運(yùn)行狀況?
  • 如何批量重新啟動(dòng)容器里的程序?

解決這些問題需要容器編排技術(shù),可以將眾多機(jī)器抽象,對(duì)外呈現(xiàn)出一臺(tái)超大機(jī)器。現(xiàn)在業(yè)界比較流行的有:k8s、Mesos、Docker Swarm。

在業(yè)務(wù)發(fā)展初期只有幾個(gè)微服務(wù),這時(shí)用 Docker 就足夠了,但隨著業(yè)務(wù)規(guī)模逐漸擴(kuò)大,容器越來越多,運(yùn)維人員的工作越來越復(fù)雜,這個(gè)時(shí)候就需要編排系統(tǒng)解救opers。

Docker不香嗎?為什么還要用k8s 應(yīng)用程序的聲明周期

一個(gè)成熟的容器編排系統(tǒng)需要具備以下能力:

  • 處理大量的容器和用戶

  • 負(fù)載均衡

  • 鑒權(quán)和安全性

  • 管理服務(wù)通信

  • 多平臺(tái)部署

k8s與Docker Swarm江湖恩怨

Docker不香嗎?為什么還要用k8s k8s VS Docker Swarm

如果你非要拿 Docker 和 k8s 進(jìn)行比較,其實(shí)你更應(yīng)該拿 Docker Swarm 和 k8s 比較。

Docker Swarm 是 Docker 自家針對(duì)集群化部署管理的解決方案,優(yōu)點(diǎn)很明顯,可以更緊密集成到 Docker 生態(tài)系統(tǒng)中。

雖說 Swarm 是 Docker 親兒子,但依舊沒有 k8s 流行,不流行很大程度是因?yàn)樯虡I(yè)、生態(tài)的原因,不多解釋。

k8s是做什么用的?

K8s是Google研發(fā)的容器協(xié)調(diào)器,已捐贈(zèng)給CNCF,現(xiàn)已開源。

Google 利用在容器管理多年的經(jīng)驗(yàn)和專業(yè)知識(shí)推出了 k8s,主要用于自動(dòng)化部署應(yīng)用程序容器,可以支持眾多容器化工具包括現(xiàn)在非常流行的Docker。

目前k8s 是容器編排市場(chǎng)的領(lǐng)導(dǎo)者,開源并公布了一系列標(biāo)準(zhǔn)化方法,主流的公有云平臺(tái)都宣布支持。

一流的廠商都在搶占標(biāo)準(zhǔn)的制高點(diǎn),一堆小廠商跟著一起玩,這就叫生態(tài)了。國(guó)內(nèi)的大廠商都在干嘛呢?搶社區(qū)團(tuán)購(gòu)市場(chǎng),玩資本游戲,哎?!

K8s 架構(gòu)和組件

k8s 由眾多組件組成,組件間通過 API 互相通信,歸納起來主要分為三個(gè)部分:

  • controller manager
  • nodes
  • pods
Docker不香嗎?為什么還要用k8s k8s集群架構(gòu)圖
  • Controller Manager,即控制平面,用于調(diào)度程序以及節(jié)點(diǎn)狀態(tài)檢測(cè)。

  • Nodes,構(gòu)成了Kubernetes集群的集體計(jì)算能力,實(shí)際部署容器運(yùn)行的地方。

  • Pods,Kubernetes集群中資源的最小單位。

Docker與k8s 難舍難分

Docker 和 k8s 在業(yè)界非常流行,都已經(jīng)是事實(shí)上的標(biāo)準(zhǔn)。

Docker 是用于構(gòu)建、分發(fā)、運(yùn)行容器的平臺(tái)和工具。

而 k8s 實(shí)際上是一個(gè)使用 Docker 容器進(jìn)行編排的系統(tǒng),主要圍繞 pods 進(jìn)行工作。Pods 是 k8s 生態(tài)中最小的調(diào)度單位,可以包含一個(gè)或多個(gè)容器。

Docker 和 k8s 是根本上不同的技術(shù),兩者可以很好的協(xié)同工作。

開發(fā)實(shí)踐,靈魂追問

(1)沒有 k8s 可以使用 docker 嗎?

可以。實(shí)際上一些小型公司,在業(yè)務(wù)不太復(fù)雜的情況下都是直接使用 Docker。盡管 k8s 有很多好處,但是眾所周知它非常復(fù)雜,業(yè)務(wù)比較簡(jiǎn)單可以放棄使用 k8s。

(2)沒有 Docker 可以使用 k8s 嗎?

k8s 只是一個(gè)容器編排器,沒有容器拿什么編排?!

k8s 經(jīng)常與 Docker 進(jìn)行搭配使用,但是也可以使用其他容器,如RunC、Containerted 等。

(3)Docker Swarm 和 k8s 怎么選?

選 k8s。2019年底Docker Enterprise已經(jīng)出售給Mirantis,Mirantis聲明要逐步淘汰Docker Swarm,后續(xù)會(huì)將 k8s 作為默認(rèn)編排工具。

最后一個(gè)問題

Docker 不香嗎?為什么還要用 k8s

Docker很香,但 k8s 在業(yè)務(wù)達(dá)到一定規(guī)模后也得啟用。學(xué)會(huì)了嗎?


	

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉