Kubernetes學習(一)

1.Kubernetes的介紹

1.1Kubernetes與Docker

2010年辟灰,幾個搞IT的年輕人丰捷,在美國舊金山成立了一家名叫“dotCloud”的公司。

這家公司主要提供基于PaaS的云計算技術(shù)服務(wù)属提。具體來說权逗,是和LXC(Linux Container容器是一種內(nèi)核虛擬化技術(shù),可以提供輕量級的虛擬化冤议,以便隔離進程和資源)有關(guān)的容器技術(shù)旬迹。

后來,dotCloud公司將自己的容器技術(shù)進行了簡化和標準化求类,并命名為——Docker。

Docker技術(shù)誕生之后屹耐,并沒有引起行業(yè)的關(guān)注尸疆。而dotCloud公司椿猎,作為一家小型創(chuàng)業(yè)企業(yè),在激烈的競爭之下寿弱,也步履維艱犯眠。

正當他們快要堅持不下去的時候,腦子里蹦出了“開源”的想法症革。

什么是“開源”筐咧?開源,就是開放源代碼噪矛。也就是將原來內(nèi)部保密的程序源代碼開放給所有人量蕊,然后讓大家一起參與進來,貢獻代碼和意見艇挨。

Open Source残炮,開源

有的軟件是一開始就開源的。也有的軟件缩滨,是混不下去势就,創(chuàng)造者又不想放棄,所以選擇開源脉漏。自己養(yǎng)不活苞冯,就吃“百家飯”嘛。

2013年3月侧巨,dotCloud公司的創(chuàng)始人之一舅锄,Docker之父,28歲的Solomon?Hykes正式?jīng)Q定刃泡,將Docker項目開源巧娱。

Solomon?Hykes

不開則已,一開驚人烘贴。

越來越多的IT工程師發(fā)現(xiàn)了Docker的優(yōu)點禁添,然后蜂擁而至,加入Docker開源社區(qū)桨踪。

Docker的人氣迅速攀升老翘,速度之快,令人瞠目結(jié)舌锻离。

開源當月铺峭,Docker 0.1版本發(fā)布。此后的每一個月汽纠,Docker都會發(fā)布一個版本卫键。到2014年6月9日,Docker 1.0版本正式發(fā)布虱朵。

此時的Docker莉炉,已經(jīng)成為行業(yè)里人氣最火爆的開源技術(shù)钓账,沒有之一。甚至像Google絮宁、微軟梆暮、Amazon、VMware這樣的巨頭绍昂,都對它青睞有加啦粹,表示將全力支持。

Docker火了之后窘游,dotCloud公司干脆把公司名字也改成了Docker Inc.唠椭。

Docker和容器技術(shù)為什么會這么火爆?說白了张峰,就是因為它“輕”泪蔫。

在容器技術(shù)之前,業(yè)界的網(wǎng)紅是虛擬機喘批。虛擬機技術(shù)的代表撩荣,是VMWareOpenStack

相信很多人都用過虛擬機饶深。虛擬機餐曹,就是在你的操作系統(tǒng)里面,裝一個軟件敌厘,然后通過這個軟件台猴,再模擬一臺甚至多臺“子電腦”出來。

虛擬機俱两,類似于“子電腦”

在“子電腦”里饱狂,你可以和正常電腦一樣運行程序,例如開QQ宪彩。如果你愿意休讳,你可以變出好幾個“子電腦”,里面都開上QQ尿孔】∪幔“子電腦”和“子電腦”之間,是相互隔離的活合,互不影響雏婶。

虛擬機屬于虛擬化技術(shù)。

而Docker這樣的容器技術(shù)白指,也是虛擬化技術(shù)留晚,屬于輕量級的虛擬化。

虛擬機雖然可以隔離出很多“子電腦”告嘲,但占用空間更大倔丈,啟動更慢憨闰,虛擬機軟件可能還要花錢(例如VMWare)。

而容器技術(shù)恰好沒有這些缺點需五。它不需要虛擬出整個操作系統(tǒng),只需要虛擬一個小規(guī)模的環(huán)境(類似“沙箱”)轧坎。

沙箱

它啟動時間很快宏邮,幾秒鐘就能完成。而且缸血,它對資源的利用率很高(一臺主機可以同時運行幾千個Docker容器)蜜氨。此外,它占的空間很小捎泻,虛擬機一般要幾GB到幾十GB的空間飒炎,而容器只需要MB級甚至KB級。

容器和虛擬機的對比

正因為如此笆豁,容器技術(shù)受到了熱烈的歡迎和追捧郎汪,發(fā)展迅速。

我們具體來看看Docker闯狱。Docker 容器將軟件以及它運行安裝所需的一切文件(代碼煞赢、運行時、系統(tǒng)工具哄孤、系統(tǒng)庫)打包到一起照筑,這就保證了不管是在什么樣的運行環(huán)境,總是能以相同的方式運行瘦陈。就好像 Java 虛擬機一樣凝危,“一次編寫,到處運行(Write once, run anywhere)”晨逝,而 Docker 是“一次構(gòu)建蛾默,到處運行(Build once,run anywhere)”咏花。

大家需要注意趴生,Docker本身并不是容器,它是創(chuàng)建容器的工具昏翰,是應用容器引擎苍匆。

想要搞懂Docker,其實看它的兩句口號就行棚菊。

第一句浸踩,是“Build, Ship and Run”。

也就是统求,“搭建检碗、發(fā)送据块、運行”,三板斧折剃。

舉個例子:

我來到一片空地另假,想建個房子,于是我搬石頭怕犁、砍木頭边篮、畫圖紙,一頓操作奏甫,終于把這個房子蓋好了戈轿。

結(jié)果,我住了一段時間阵子,想搬到另一片空地去思杯。這時候,按以往的辦法挠进,我只能再次搬石頭色乾、砍木頭、畫圖紙奈梳、蓋房子杈湾。

但是,跑來一個老巫婆攘须,教會我一種魔法漆撞。

這種魔法,可以把我蓋好的房子復制一份于宙,做成“鏡像”浮驳,放在我的背包里。

等我到了另一片空地捞魁,就用這個“鏡像”至会,復制一套房子,擺在那邊谱俭,拎包入住奉件。

怎么樣?是不是很神奇昆著?

所以县貌,Docker的第二句口號就是:“Build?once,Run?anywhere(搭建一次凑懂,到處能用)”煤痕。

Docker技術(shù)的三大核心概念,分別是:

鏡像(Image)

容器(Container)

倉庫(Repository)

我剛才例子里面,那個放在包里的“鏡像”摆碉,就是Docker鏡像塘匣。而我的背包,就是Docker倉庫巷帝。我在空地上忌卤,用魔法造好的房子,就是一個Docker容器锅睛。

說白了埠巨,這個Docker鏡像,是一個特殊的文件系統(tǒng)现拒。它除了提供容器運行時所需的程序、庫望侈、資源印蔬、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù)(例如環(huán)境變量)脱衙。鏡像不包含任何動態(tài)數(shù)據(jù)侥猬,其內(nèi)容在構(gòu)建之后也不會被改變。

也就是說捐韩,每次變出房子退唠,房子是一樣的,但生活用品之類的荤胁,都是不管的瞧预。誰住誰負責添置。

每一個鏡像可以變出一種房子仅政。那么垢油,我可以有多個鏡像呀!

也就是說圆丹,我蓋了一個歐式別墅滩愁,生成了鏡像。另一個哥們可能蓋了一個中國四合院辫封,也生成了鏡像硝枉。還有哥們,蓋了一個非洲茅草屋倦微,也生成了鏡像妻味。。璃诀。

這么一來弧可,我們可以交換鏡像,你用我的,我用你的棕诵,豈不是很爽裁良?

于是乎,就變成了一個大的公共倉庫校套。

負責對Docker鏡像進行管理的价脾,是Docker Registry服務(wù)(類似倉庫管理員)。

不是任何人建的任何鏡像都是合法的笛匙。萬一有人蓋了一個有問題的房子呢侨把?

所以,Docker Registry服務(wù)對鏡像的管理是非常嚴格的妹孙。

最常使用的Registry公開服務(wù)秋柄,是官方的Docker Hub,這也是默認的Registry蠢正,并擁有大量的高質(zhì)量的官方鏡像骇笔。

好了,說完了Docker嚣崭,我們再把目光轉(zhuǎn)向K8S笨触。

就在Docker容器技術(shù)被炒得熱火朝天之時,大家發(fā)現(xiàn)雹舀,如果想要將Docker應用于具體的業(yè)務(wù)實現(xiàn)芦劣,是存在困難的——編排、管理和調(diào)度等各個方面说榆,都不容易虚吟。于是,人們迫切需要一套管理系統(tǒng)娱俺,對Docker及容器進行更高級更靈活的管理稍味。

就在這個時候,K8S出現(xiàn)了荠卷。

K8S模庐,就是基于容器的集群管理平臺,它的全稱油宜,是kubernetes掂碱。

一個K8S系統(tǒng),通常稱為一個K8S集群(Cluster)慎冤。

這個集群主要包括兩個部分:

一個Master節(jié)點(主節(jié)點)

一群Node節(jié)點(計算節(jié)點)

一看就明白:Master節(jié)點主要還是負責管理和控制疼燥。Node節(jié)點是工作負載節(jié)點,里面是具體的容器蚁堤。

深入來看這兩種節(jié)點醉者。

首先是Master節(jié)點。

Master節(jié)點包括API Server、Scheduler撬即、Controller manager立磁、etcd。

API Server是整個系統(tǒng)的對外接口剥槐,供客戶端和其它組件調(diào)用唱歧,相當于“營業(yè)廳”。

Scheduler負責對集群內(nèi)部的資源進行調(diào)度粒竖,相當于“調(diào)度室”颅崩。

Controller manager負責管理控制器,相當于“大總管”蕊苗。

然后是Node節(jié)點沿后。

Node節(jié)點包括Docker、kubelet朽砰、kube-proxy得运、Fluentd、kube-dns(可選)锅移,還有就是Pod

Pod是Kubernetes最基本的操作單元饱搏。一個Pod代表著集群中運行的一個進程非剃,它內(nèi)部封裝了一個或多個緊密相關(guān)的容器。除了Pod之外推沸,K8S還有一個Service的概念备绽,一個Service可以看作一組提供相同服務(wù)的Pod的對外訪問接口。這段不太好理解鬓催,跳過吧肺素。

Docker,不用說了宇驾,創(chuàng)建容器的倍靡。

Kubelet,主要負責監(jiān)視指派到它所在Node上的Pod课舍,包括創(chuàng)建塌西、修改、監(jiān)控筝尾、刪除等捡需。

Kube-proxy,主要負責為Pod對象提供代理筹淫。

Fluentd站辉,主要負責日志收集、存儲與查詢。


另外一種通俗的解釋:(可以先往下學習饰剥,等學的差不多了殊霞,再來看更能理解)

18張兒童插畫讓你秒懂Kubernetes

很久很久以前,有一個叫 Phippy 的應用程序捐川。她是一個簡單的應用程序脓鹃,由 PHP 編寫且只有一個頁面誓斥。

她住在一個需要和其他可怕的應用程序分享環(huán)境的主機中井厌,她不認識這些應用程序并且不愿意和他們來往。

她希望她能擁有一個屬于自己的環(huán)境:只有她自己和她可以稱之為家的 Web 服務(wù)器萍悴。

每個應用程序都有個運行所依賴的環(huán)境岩齿。對于 PHP 應用程序來說太颤,這個環(huán)境可能包括 Web 服務(wù)器,一個可讀文件系統(tǒng)和 PHP 引擎本身盹沈。

有一天龄章,一只善良的鯨魚出現(xiàn)了。他建議小 Phippy 住在容器里乞封,這樣可能會更快樂做裙。所以應用程序 Phippy 遷移到了容器中。這個容器很棒肃晚,但是……它有點像一個漂浮在大海中央的豪華起居室锚贱。

(Docker)容器提供了一個獨立的環(huán)境,應用程序可以在這個環(huán)境中運行关串。但是這些孤立的容器常常需要被管理并與外面的世界連接拧廊。

對于孤立的容器而言,共享文件系統(tǒng)晋修、網(wǎng)絡(luò)通信吧碾、調(diào)度、負載均衡和分發(fā)都是要面對的挑戰(zhàn)墓卦。

鯨魚聳了聳肩倦春。“對不起趴拧,孩子溅漾。”他說著著榴,消失在海面下添履。

就在 Phippy 甚至開始絕望時,一位駕駛著巨輪的船長出現(xiàn)在海平線上脑又。這艘船由幾十個綁在一起的木筏組成暮胧,但從外面來看锐借,它就像一艘巨輪。

“你好呀往衷,這位 PHP 應用程序朋友钞翔。我是 Kube 船長∠幔”睿智的老船長說布轿。

“Kubernetes” 在希臘語中是船長的意思。我們可以從這個單詞中得到 Cybernetic 和 Gubernatorial 這兩個詞組来颤。Kubernetes 項目專注于構(gòu)建一個健壯的平臺汰扭,用于在生產(chǎn)環(huán)境中運行數(shù)千個容器。

“我是 Phippy福铅÷苊”小應用程序說。

“很高興認識你滑黔“拾”船長一邊說,一邊在她身上貼上了一張標有姓名的標簽略荡。

Kubernetes 使用標簽作為“名牌”來標識事物庵佣。它可以根據(jù)這些標簽進行查詢。標簽是開放性的:你可以用他們來表示角色汛兜、穩(wěn)定性或其他重要的屬性秧了。

船長建議應用程序把她的容器搬到船上的一個船艙中。Phippy 很高興地把她的容器搬到 Kube 船長巨輪的船艙內(nèi)序无。Phippy 覺得這里像家一樣。

在 Kubernetes 中衡创,Pod 代表一個可運行的工作單元帝嗡。通常,你會在 Pod 中運行一個容器璃氢。

但是對于一些容器緊密耦合的情況哟玷,你可以選擇在同一個 Pod 中運行多個容器。

Kubernetes 負責將你的 Pod 和網(wǎng)絡(luò)以及 Kubernetes 的其余環(huán)境相連一也。

Phippy 有一些不同尋常的興趣巢寡,她很喜歡遺傳學和綿羊。所以她問船長:“如果我想克隆我自己椰苟,是否可以根據(jù)需求克隆任意次數(shù)呢?”

“這很容易抑月。”船長說舆蝴。船長把 Phippy 介紹給了 Replication Controller谦絮。

Replication Controller 提供一種管理任意數(shù)量 Pod 的方法题诵。一個 Replication Controller 包含一個 Pod 模板,該模板可以被復制任意次數(shù)层皱。

通過 Replication Controller性锭,Kubernetes 將管理 Pod 的生命周期,包括伸縮叫胖、滾動更新和監(jiān)控草冈。

無數(shù)個日夜,小應用程序在她的船艙中與她的復制品相處十分愉快瓮增。但與自己為伍并沒有所說的那么好……即使你擁有 N 個自己的克隆體怎棱。

Kube 船長慈祥地笑了笑:“我正好有一樣東西《ち蓿”

他剛開口蹄殃,在 Phippy 的 Replication Controller 和船的其他部分之間打開了一條隧道。Kube 船長笑著說:“即使你的復制品來了又去你踩,這條隧道始終會留在這里诅岩,你可以通過它發(fā)現(xiàn)其他 Pod,其他 Pod 也可以發(fā)現(xiàn)你!”

服務(wù)告知 Kubernetes 環(huán)境的其余部分(包括其他 Pod 和 Replication Controller)你的應用程序包含了哪些服務(wù)带膜,當 Pod 來來往往吩谦,服務(wù)的 IP 地址和端口始終保持不變。

其他應用程序可以通過 Kurbenetes 服務(wù)發(fā)現(xiàn)找到你的服務(wù)膝藕。

多虧了這些服務(wù)式廷,Phippy 開始探索船的其他部分。不久之后芭挽,Phippy 遇到了 Goldie滑废。他們成了***的朋友。

有一天袜爪,Goldie 做了一件不同尋常的事蠕趁。她送給 Phippy 一件禮物。Phippy 看了禮物一眼辛馆,悲傷的淚水奪眶而出俺陋。

“你為什么這么傷心呢?”Goldie 問道。

“我喜歡這個禮物昙篙,但我沒有地方可以放它!”Phippy 抽噎道腊状。

但 Goldie 知道該怎么做√桑“為什么不把它放入卷中呢?”

卷表示容器可以訪問和存儲信息的位置缴挖。對于應用程序,卷顯示為本地文件系統(tǒng)的一部分焚辅。但卷可以由本地存儲醇疼、Ceph硕并、Gluster、持久性塊存儲秧荆,以及其他存儲后端支持倔毙。

Phippy 喜歡在 Kube 船長的船上生活,她很享受來自新朋友的陪伴(Goldie 和每個克隆人都同樣令人愉悅)乙濒。但是陕赃,當她回想起在可怕的主機度過的日子,她想知道她是否也可以擁有一點自己的隱私颁股。

“這聽起來像是你所需要的么库,”Kube 船長說,“這是一個命名空間甘有∷呷澹”

命名空間是 Kubernetes 內(nèi)部的分組機制。服務(wù)亏掀、Pod忱反、Replication Controller 和卷可以在命名空間內(nèi)部輕松協(xié)作,但命名空間提供了與集群其他部分一定程度的隔離滤愕。

Phippy 與她的新朋友一起乘坐 Kube 船長的巨輪航行于大海之上温算。她經(jīng)歷了許多偉大的冒險,但最重要的是间影,Phippy 找到了自己的家注竿。

所以 Phippy 從此過上了幸福的生活。

轉(zhuǎn)自:https://www.cnblogs.com/kouryoushine/articles/8007648.html(站在浪潮之巔)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魂贬,一起剝皮案震驚了整個濱河市巩割,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌付燥,老刑警劉巖喂分,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異机蔗,居然都是意外死亡,警方通過查閱死者的電腦和手機甘萧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門萝嘁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扬卷,你說我怎么就攤上這事牙言。” “怎么了怪得?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵咱枉,是天一觀的道長卑硫。 經(jīng)常有香客問我,道長蚕断,這世上最難降的妖魔是什么欢伏? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮亿乳,結(jié)果婚禮上硝拧,老公的妹妹穿的比我還像新娘。我一直安慰自己葛假,他們只是感情好障陶,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著聊训,像睡著了一般抱究。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上带斑,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天鼓寺,我揣著相機與錄音,去河邊找鬼遏暴。 笑死侄刽,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的朋凉。 我是一名探鬼主播州丹,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杂彭!你這毒婦竟也來了墓毒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤亲怠,失蹤者是張志新(化名)和其女友劉穎所计,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體团秽,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡主胧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了习勤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踪栋。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖图毕,靈堂內(nèi)的尸體忽然破棺而出夷都,到底是詐尸還是另有隱情,我是刑警寧澤予颤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布囤官,位于F島的核電站冬阳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏党饮。R本人自食惡果不足惜肝陪,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劫谅。 院中可真熱鬧见坑,春花似錦、人聲如沸捏检。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贯城。三九已至熊楼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間能犯,已是汗流浹背鲫骗。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留踩晶,地道東北人执泰。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓渡蜻,卻偏偏與公主長得像茸苇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容