00 | 開篇詞 | 打通“容器技術”的任督二脈

你好偏序,我是張磊,Kubernetes 社區(qū)的一位資深成員和項目維護者改艇。

2012 年收班,我還在浙大讀書的時候,就有幸組建了一個云計算與 PaaS 基礎設施相關的科研團隊遣耍,就這樣闺阱,我從早期的 Cloud Foundry 社區(qū)開始炮车,正式與容器結緣舵变。

這幾年里,我大多數(shù)時間都在 Kubernetes 項目里從事上游技術工作瘦穆,也得以作為一名從業(yè)者和社區(qū)成員的身份纪隙,參與和親歷了容器技術從“初出茅廬”到“塵埃落定”的全過程。

而即使從 2013 年 Docker 項目發(fā)布開始算起扛或,這次變革也不過短短 5 年時間绵咱,可在現(xiàn)如今的技術圈兒里,不懂容器熙兔,沒聽過 Kubernetes悲伶,你還真不好意思跟人打招呼。

容器技術這樣一個新生事物住涉,完全重塑了整個云計算市場的形態(tài)麸锉。它不僅催生出了一批年輕有為的容器技術人,更培育出了一個具有相當規(guī)模的開源基礎設施技術市場舆声。

在這個市場里花沉,不僅有 Google、Microsoft 等技術巨擘們廝殺至今媳握,更有無數(shù)的國內(nèi)外創(chuàng)業(yè)公司前仆后繼碱屁。而在國內(nèi),甚至連以前對開源基礎設施領域涉足不多的 BAT蛾找、螞蟻娩脾、滴滴這樣的巨頭們,也都從 AI打毛、云計算柿赊、微服務架曹、基礎設施等維度多管齊下,爭相把容器和Kubernetes項目樹立為戰(zhàn)略重心之一闹瞧。

就在這場因“容器”而起的技術變革中绑雄,Kubernetes 項目已然成為容器技術的事實標準,重新定義了基礎設施領域對應用編排與管理的種種可能奥邮。

2014 年后万牺,我開始以遠程的方式,全職在 Kubernetes 和Kata Containers 社區(qū)從事上游開發(fā)工作洽腺,先后發(fā)起了容器鏡像親密性調(diào)度脚粟、基于等價類的調(diào)度優(yōu)化等多個核心特性,參與了容器運行時接口蘸朋、安全容器沙盒等多個基礎特性的設計和研發(fā)核无。還有幸作為主要的研發(fā)人員和維護者之一,親歷了 Serverless Container 概念的誕生與崛起藕坯。

在 2015 年团南,我發(fā)起和組織撰寫了《Docker 容器與容器云》一書,希望幫助更多的人利用容器解決實際場景中的問題炼彪。時至今日吐根,這本書的第 2 版也已經(jīng)出版快 2年了,受到了廣大容器技術讀者們的好評辐马。

2018 年拷橘,我又赴西雅圖,在微軟研究院(MSR)云計算與存儲研究組喜爷,專門從事基于Kubernetes 的深度學習基礎設施相關的研究工作冗疮。

我與容器打交道的這些年,一直在與關注容器生態(tài)的工程師們交流檩帐,并經(jīng)常探討容器在落地過程中遇到的問題术幔。從這些交流中,我發(fā)現(xiàn)總有很多相似的問題被反復提及轿塔,比如:

1. 為什么容器里只能跑“一個進程”特愿?

2. 為什么我原先一直在用的某個 JVM 參數(shù),在容器里就不好使了勾缭?

3. 為什么 Kubernetes 就不能固定 IP 地址揍障?容器網(wǎng)絡連不通又該如何去 Debug?

4. Kubernetes 中 StatefulSet 和 Operator 到底什么區(qū)別俩由?PV 和 PVC 這些概念又該怎么用毒嫡?

這些問題乍一看與我們平常的認知非常矛盾,但它們的答案和原理卻并不復雜。不過很遺憾兜畸,對于剛剛開始學習容器的技術人員來說努释,它們卻很難用一兩句話就能解釋清楚。

究其原因在于咬摇,從過去以物理機和虛擬機為主體的開發(fā)運維環(huán)境伐蒂,向以容器為核心的基礎設施的轉變過程,并不是一次溫和的改革肛鹏,而是涵蓋了對網(wǎng)絡逸邦、存儲、調(diào)度在扰、操作系統(tǒng)缕减、分布式原理等各個方面的容器化理解和改造。

這就導致了很多初學者芒珠,對于容器技術棧表現(xiàn)出來的這些難題桥狡,要么知識儲備不足,要么雜亂無章皱卓、無法形成體系裹芝。這,也是很多初次參與 PaaS 項目的從業(yè)者們共同面臨的一個困境好爬。

其實局雄,容器技術體系看似紛亂繁雜,卻存在著很多可以“牽一發(fā)而動全身”的主線存炮。比如,Linux 的進程模型對于容器本身的重要意義蜈漓;或者穆桂,“控制器”模式對整個 Kubernetes 項目提綱挈領的作用。

但是融虽,這些關于 Linux 內(nèi)核享完、分布式系統(tǒng)、網(wǎng)絡有额、存儲等方方面面的積累般又,并不會在Docker或者 Kubernetes 的文檔中交代清楚∥∮樱可偏偏就是它們茴迁,才是真正掌握容器技術體系的精髓所在,是每一位技術從業(yè)者需要悉心修煉的“內(nèi)功”萤衰。

而這堕义,也正是我開設這個專欄的初衷。

我希望借由這個專欄脆栋,給你講清楚容器背后的這些技術本質(zhì)與設計思想倦卖,并結合著對核心特性的剖析與實踐洒擦,加深你對容器技術的理解。為此怕膛,我把專欄劃分成了 4 大模塊:

1. “白話”容器技術基礎:我希望用饒有趣味的解說熟嫩,給你梳理容器技術生態(tài)的發(fā)展脈絡,用最通俗易懂的語言描述容器底層技術的實現(xiàn)方式褐捻,讓你知其然邦危,也知其所以然。

2. Kubernetes 集群的搭建與實踐: Kubernetes 集群號稱“非常復雜”舍扰,但是如果明白了其中的架構和原理倦蚪,選擇了正確的工具和方法,它的搭建卻也可以“一鍵安裝”边苹,它的應用部署也可以淺顯易懂陵且。

3. 容器編排與 Kubernetes 核心特性剖析:這是這個專欄最重要的內(nèi)容「鍪“編排”永遠都是容器云項目的靈魂所在慕购,也是 Kubernetes 社區(qū)持久生命力的源泉。在這一模塊茬底,我會從分布式系統(tǒng)設計的視角出發(fā)沪悲,抽象和歸納出這些特性中體現(xiàn)出來的普遍方法,然后帶著這些指導思想去逐一闡述 Kubernetes 項目關于編排阱表、調(diào)度和作業(yè)管理的各項核心特性殿如。“不識廬山真面目最爬,只緣身在此山中”涉馁,希望這樣一個與眾不同的角度,能夠給你以全新的啟發(fā)爱致。

4. Kubernetes 開源社區(qū)與生態(tài):“開源生態(tài)”永遠都是容器技術和 Kubernetes 項目成功的關鍵烤送。在這個模塊,我會和你一起探討糠悯,容器社區(qū)在開源軟件工程指導下的演進之路帮坚;帶你思考,如何同團隊一起平衡內(nèi)外部需求互艾,讓自己逐漸成為社區(qū)中不可或缺的一員试和。

我希望通過這些對容器與 Kubernetes 項目的逐層剖析,能夠讓你面對容器化浪潮時不再躊躇無措忘朝,有一種撥云見日的酣暢淋漓灰署。

最后,我想再和你分享一個故事。

2015 年我在 InfoQ 舉辦的第一屆容器技術大會上溉箕,結識了當時CoreOS 的布道師KelseyHightower晦墙,他熱情地和大家一起安裝和體驗微信,談笑風生間肴茄,還時不時地安利一番自家產(chǎn)品晌畅。

但兩年后也就是 2017 年,Kelsey 已經(jīng)是全世界容器圈兒的意見領袖寡痰,是 Google 公司Kubernetes 項目的首席布道師抗楔,而他的座右銘也變?yōu)榱恕爸徊嫉溃煌其N”拦坠。此時连躏,就算你漂洋過海想要親自拜會 Kelsey ,恐怕也得先預約下時間了贞滨。

誠然入热,Kelsey 的“一夜成名”,與他的勤奮和天賦密不可分晓铆,但他對這次“容器”變革走向的準確把握卻也是功不可沒勺良。這也正應了一句名言:一個人的命運啊,當然要靠自我奮斗骄噪,但是也要考慮到歷史的行程尚困。

眼下,你我可能已經(jīng)錯過了互聯(lián)網(wǎng)技術大爆炸的時代链蕊,也沒有在數(shù)字貨幣早期的狂熱里分到一杯羹事甜。可就在此時此刻示弓,在沉寂了多年的云計算與基礎設施領域讳侨,一次以“容器”為名的歷史變革,正呼之欲出奏属。這一次,我們又有什么理由作壁上觀呢潮峦?

如果你也想登上“容器”這趟高速前進的列車囱皿,我相信這個專欄,可以幫助你打通學習容器技術的“任督二脈”忱嘹。在專欄開始嘱腥,我首先為你準備了 4 篇預習文章,詳細地梳理了容器技術自興起到現(xiàn)在的發(fā)展歷程拘悦,同時也回答了“Kubernetes 為什么會贏”這個重要的問題齿兔,算是我額外為你準備的一份開學禮物吧。

機會總是留給有準備的人,現(xiàn)在就讓我們一起開啟這次充滿挑戰(zhàn)的容器之旅分苇!


文章回復:

llitfkitfk@dockone.io

如果拿汽車來做比:

Docker好比汽車引擎添诉,

Dockerfile相當于汽車藍圖,

Docker image(鏡像)就是汽車樣板医寿,

Docker container(容器)類似于汽車的零部件栏赴,

Docker Registry可以看作是4s店,

Docker Compose就像老司機,

Docker Volume就像是汽車的油箱, 如果把容器間內(nèi)的io數(shù)據(jù)流比喻成汽油,

Docker Swarm(或者K8s)就是交通樞紐靖秩。

2018-09-09

歲月~靜好

第一次買網(wǎng)絡課程须眷,但愿學完之后對容器和k8s有自己的理解吧,雖然現(xiàn)在有些看不懂沟突。

2018-08-27

☆ 微~光 ☆

今天剛用二進制文件的方式花颗,搭建了一套完整的k8s集群,雖然搭建成功了惠拭,但是對里面參數(shù)還是不是很清楚扩劝,所以還需要好好深入學習一下,希望這個課程能帶給我大的收獲求橄!

2018-08-27

作者回復

二進制絕對是hard模式

2018-08-28

推薦一下https://github.com/knarfeh/k8s-digitalocean-terraform這個項目今野,可以在Digital Ocean 上一鍵啟動 kubernetes 機器

2018-09-03

arcTanh

竟然讓我這個半瓶子算法工程師聽的熱血沸騰啊

2018-08-28

作者回復

相信我,開發(fā)人員才是容器技術的真正用戶罐农,AI基礎設施了解一下

2018-08-28

ylck

cka 管理員再來復習下条霜。 哈哈。

2018-08-28

付盼星

k8s和yarn到底是相互如何配合呢涵亏,最近看yarn宰睡,容器化進程目前還是實驗特性,官方在未來計劃中說气筋,為了做到暫停機會容器而不是殺死機會容器以最大化資源利用拆内,需要用到容器技術,就是最常見的pause功能宠默,讓我在思考麸恍,到底k8s的強項是資源調(diào)度還是應用編排呢,如果兩個共同協(xié)作搀矫,到底利用了各自哪些優(yōu)勢之處解決了哪些問題抹沪。

2018-08-28

作者回復

可以直接給你結論:kubernetes更關注容器與編排,在資源管理方面優(yōu)勢不大瓤球。但正確的姿勢融欧,是用好kubernetes 可擴展能力,讓它跟yarn等一起都發(fā)揮出真正的實力卦羡。國內(nèi)阿里和螞蟻在這一塊走得不錯噪馏。

@特

我主要涉及到openshift的運維工作麦到,而openshift是基于k8s的一套完整的devops解決方案。我在使用openshift的過程中發(fā)現(xiàn)容器化對于無狀態(tài)的服務確實非常友好欠肾,但是對于需要存儲的和需要固定ip的服務非常不友好瓶颠。比如zk集群,MySQL的MGR集群,ES集群等等董济。部署難度和運維難度都非常高步清。而statefulsets并沒有想象中的好用

2018-08-28

作者回復

有狀態(tài)應用管理自然是最難的,要學完整個專欄的所有內(nèi)容恐怕才有更深的體會

趙冬晨

從接觸市面上大部分web容器(tomcat.glassfish.weblogic.websphere.jetty等等)虏肾,就覺得切換環(huán)境部署太費勁了廓啊,尤其是要跑兼容性就需要安裝不同版本,太難受了…后來接觸到了docker封豪,絕對好牛逼啊谴轮,真是超級方便,再后來手里服務器多了就接觸到了kubernetes吹埠,覺得這個更牛逼啊第步,超舒服,得好好學學缘琅,這趟車我上了粘都,滴,滴滴

2018-08-29

作者回復

恭喜刷袍,容器晉級之路你算是上道了

jerryduren

聽了前面的覺得上癮了翩隧,期待更新快一點.另外希望聽到虛擬機容器,裸機容器,虛擬機容器三者間優(yōu)劣勢系統(tǒng)的對比分析方面的內(nèi)容

2018-09-04

作者回復

當然有

LQ

這兩天剛開始學k8s,相關專欄就上了呻纹,真是及時堆生。

2018-08-27

杜鵬

請問后期的課程會介紹k8s和yarn結合的案例嗎?能否先給一些資料熟悉一下雷酪?現(xiàn)在項目中需要用到k8s的資源管理淑仆,總的來說是怎么省錢。

2018-09-19

作者回復

會講資源管理

2018-09-19

您提到: kubernetes更關注容器與編排哥力,在資源管理方面優(yōu)勢不大蔗怠。但正確的姿勢,是用好kubernetes 可擴展能力吩跋,讓它跟yarn等一起都發(fā)揮出真正的實力蟀淮。國內(nèi)阿里和螞蟻在這一塊走得不錯。

強烈跪求講一下如何彌補k8s的資源管理缺點钞澳,與yarn結合這方面的知識與經(jīng)驗阿!U歉俊轧粟!

2018-09-08

作者回復

說白了就是給kubernetes 寫自定義調(diào)度器策治。

2018-09-08

joy

磊哥,遠程全職在社區(qū)工作還有工資兰吟?工資比日常在公司上班掙得多通惫?

2018-09-07

作者回復

當然得有sponsor

2018-09-08

loda

想咨詢下kubeadm適合生產(chǎn)環(huán)境安裝集群么

2018-09-07

作者回復

小規(guī)模可以混蔼。

2018-09-07

cxyfreedom

搭建環(huán)境太痛苦了履腋,還不容易集群搭建成功了,部署插件又出問題惭嚣,有時候找各種別人的方法還無效

2018-08-29

作者回復

弄懂這些插件的工作原理才是正解遵湖。

日拱一卒

我的項目k8s有快半年了,但是對k8s還是沒有系統(tǒng)學習晚吞,遇到問題經(jīng)常是google去解決延旧,希望可以通過這次課程,對它有一個系統(tǒng)的理解槽地。

2018-08-29

Alery

聽得熱血沸騰

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末迁沫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子捌蚊,更是在濱河造成了極大的恐慌集畅,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缅糟,死亡現(xiàn)場離奇詭異挺智,居然都是意外死亡,警方通過查閱死者的電腦和手機溺拱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門逃贝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人迫摔,你說我怎么就攤上這事沐扳。” “怎么了句占?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵沪摄,是天一觀的道長。 經(jīng)常有香客問我纱烘,道長杨拐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任擂啥,我火速辦了婚禮哄陶,結果婚禮上,老公的妹妹穿的比我還像新娘哺壶。我一直安慰自己屋吨,他們只是感情好蜒谤,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著至扰,像睡著了一般鳍徽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上敢课,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天阶祭,我揣著相機與錄音,去河邊找鬼直秆。 笑死濒募,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的切厘。 我是一名探鬼主播萨咳,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疫稿!你這毒婦竟也來了培他?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤遗座,失蹤者是張志新(化名)和其女友劉穎舀凛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體途蒋,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡猛遍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了号坡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片懊烤。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宽堆,靈堂內(nèi)的尸體忽然破棺而出腌紧,到底是詐尸還是另有隱情,我是刑警寧澤畜隶,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布壁肋,位于F島的核電站,受9級特大地震影響籽慢,放射性物質(zhì)發(fā)生泄漏浸遗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一箱亿、第九天 我趴在偏房一處隱蔽的房頂上張望跛锌。 院中可真熱鬧,春花似錦届惋、人聲如沸察净。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氢卡。三九已至,卻和暖如春晨缴,著一層夾襖步出監(jiān)牢的瞬間译秦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工击碗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留筑悴,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓稍途,卻偏偏與公主長得像阁吝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子械拍,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354