Docker集群管理方案Kubernetes之組件

上一篇Docker集群管理方案Kubernetes之部署慨默,通過在線安裝的方式搭建了Kubernetes的集群凉当,本文將對Kubernetes的組件進(jìn)行描述,以進(jìn)一步了解Kubernetes咖楣。

下圖列出了Kubernetes的組件:

kubernetes.png

master節(jié)點(diǎn)組件

在master上運(yùn)行有etcd等龙、api server处渣、controller manager伶贰、scheduler四個組件蛛砰,負(fù)責(zé)對集群中的所有資源進(jìn)行管控和調(diào)度。

  1. etcd
    由CoreOS團(tuán)隊開發(fā)的一個輕量級分布式鍵值存儲系統(tǒng)黍衙,主要用于配置共享和服務(wù)的注冊以及發(fā)現(xiàn)泥畅。是Kubernetes賴以運(yùn)行的基礎(chǔ)組件,為Kubernetes提供全局的高可用配置存儲琅翻,負(fù)責(zé)存儲Kubernetes所有對象的生命周期位仁。
    etcd作為整個Kubernetes集群的中心數(shù)據(jù)庫,通常需要以集群的方式進(jìn)行部署方椎,如規(guī)劃一個至少三臺服務(wù)器的etcd集群聂抢。
    etcd提供了HTTP/JSON API,可以非常方便地設(shè)置或獲取值棠众。
    在master節(jié)點(diǎn)上運(yùn)行etcd --version可以查看使用的etcd版本琳疏。

  2. API Server
    是資源對象的唯一操作入口。
    用于驗證和配置pods闸拿、services空盼、replicationcontrollers等對象的數(shù)據(jù),封裝了以上對象的CRUD操作并以Restful形式提供給外部或內(nèi)部調(diào)用新荤。大多數(shù)的接口都是直接讀寫etcd揽趾。
    kubectl實際上就是調(diào)用了API Server的接口。

  3. Controller Manager
    controller包括replication controller, endpoints controller, namespace controller, serviceaccounts controllers, token controller, node controller, resourcequota controller, server controller等苛骨。這些controller通過調(diào)用API Server的接口監(jiān)控集群的共享狀態(tài)篱瞎,并將當(dāng)前狀態(tài)改變?yōu)槠谕臓顟B(tài)。
    controller manager作為守護(hù)程序痒芝,負(fù)責(zé)管理和執(zhí)行這些controller奔缠。

  4. Scheduler
    scheduler用來分派pods到集群中的指定minion節(jié)點(diǎn)。
    scheduler跟蹤每個minion節(jié)點(diǎn)上的資源利用率吼野,以確保工作負(fù)載調(diào)度不超過可用資源限制校哎。scheduler必須知道每個minion節(jié)點(diǎn)上的所有可用資源,以及節(jié)點(diǎn)上已經(jīng)分配負(fù)載的資源。

minion節(jié)點(diǎn)組件

在minion上運(yùn)行有docker daemon闷哆、kubelet腰奋、proxy三個組件,負(fù)責(zé)對節(jié)點(diǎn)上的pod的生命周期進(jìn)行管理抱怔,以及實現(xiàn)服務(wù)代理的功能劣坊。

  1. Docker
    minion節(jié)點(diǎn)上必須運(yùn)行docker引擎。

  2. Kubelet
    可以把kubelet看做是集群中minion節(jié)點(diǎn)的代理屈留。kubelet負(fù)責(zé)轉(zhuǎn)發(fā)來自或去往master節(jié)點(diǎn)的信息局冰,讀取或?qū)懭雃tcd數(shù)據(jù)。
    kubelet負(fù)責(zé)節(jié)點(diǎn)上的pod的創(chuàng)建灌危、修改康二、監(jiān)控、刪除等全生命周期管理勇蝙,同時定時上報節(jié)點(diǎn)的狀態(tài)信息到API Server沫勿。

  3. Proxy
    proxy負(fù)責(zé)整個網(wǎng)絡(luò)規(guī)則的連接與轉(zhuǎn)發(fā),實現(xiàn)了service的代理以及負(fù)載均衡味混。

工作單元

  1. Pods
    pod是Kubernetes最基本的操作單元产雹。
    通常將相互關(guān)聯(lián)的容器組合在一起放入一個pod中。這些容器可以理解為一個單個的“應(yīng)用”翁锡。這些容器在同一個主機(jī)上被調(diào)度蔓挖,共享一個運(yùn)行環(huán)境。一個pod中的容器共享同一組資源如磁盤卷和網(wǎng)絡(luò)命名空間等馆衔,比如容器之間可以通過localhost相互通信瘟判。
    在設(shè)計pod時通常包含一個主容器,擔(dān)當(dāng)該pod的主要用途哈踱,再加一些輔助類容器以協(xié)助完成相關(guān)的工作荒适,這些輔助容器中的應(yīng)用程序雖然運(yùn)行和管理在自己的容器中,但是同主容器中的應(yīng)用緊密關(guān)聯(lián)开镣。
    通過Yaml或Json格式的配置文件來定義pod刀诬。pod的生命周期通過replication controller來管理。

  2. Services
    Kubernetes中service是一個負(fù)載均衡器邪财,用以調(diào)度后端的容器陕壹。一個service可以看作是一組提供相同服務(wù)的pod的訪問接口。這樣外部調(diào)用方僅需要關(guān)注service這一個訪問點(diǎn)树埠,而無需了解后面是一個容器還是一個高可用容器集群糠馆。
    通過部署一個service,就輕易的具備了動態(tài)服務(wù)發(fā)現(xiàn)的能力怎憋。
    通過Yaml或Json格式的配置文件來定義service又碌。

  3. Replication Controller
    replication controller用于定義pod副本的數(shù)量九昧,解決了pod的伸縮性問題,大大減少了此前系統(tǒng)管理員的手工運(yùn)維工作毕匀。
    通過Yaml或Json格式的配置文件來定義replication controller铸鹰。在master節(jié)點(diǎn)上,controller manager通過replication controller的定義來完成pod的創(chuàng)建皂岔、監(jiān)控蹋笼、啟動、停止等操作躁垛。
    當(dāng)一個容器掛掉時剖毯,replication controller可以啟動另一個容器,當(dāng)掛掉的容器恢復(fù)后教馆,replication controller會關(guān)掉運(yùn)行中的一個容器逊谋。以確保集群中運(yùn)行的容器數(shù)量用戶期望的一致。

  4. Labels
    label是一個鍵值對活玲,附加到pod涣狗、service谍婉、replication controller等對象上舒憾,用于識別這些對象。
    對象可以有多個label穗熬,通常為了更細(xì)粒度的控制镀迂,可以給對象指定多個label。
    使用label可以給對象創(chuàng)建多組標(biāo)簽唤蔗,service探遵、replication controller通過label selector選擇對象范圍。label selector采用基于等式的或基于集合的方式對label進(jìn)行篩選從而篩選對象妓柜,如replication controller通過label selector選擇要管理的pod箱季。
    label是service和replication controller的基礎(chǔ)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棍掐,一起剝皮案震驚了整個濱河市藏雏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌作煌,老刑警劉巖掘殴,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異粟誓,居然都是意外死亡奏寨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門鹰服,熙熙樓的掌柜王于貴愁眉苦臉地迎上來病瞳,“玉大人揽咕,你說我怎么就攤上這事√撞耍” “怎么了心褐?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長笼踩。 經(jīng)常有香客問我逗爹,道長,這世上最難降的妖魔是什么嚎于? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任掘而,我火速辦了婚禮,結(jié)果婚禮上于购,老公的妹妹穿的比我還像新娘袍睡。我一直安慰自己,他們只是感情好肋僧,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布斑胜。 她就那樣靜靜地躺著,像睡著了一般嫌吠。 火紅的嫁衣襯著肌膚如雪止潘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天辫诅,我揣著相機(jī)與錄音凭戴,去河邊找鬼。 笑死炕矮,一個胖子當(dāng)著我的面吹牛么夫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肤视,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼档痪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了邢滑?” 一聲冷哼從身側(cè)響起腐螟,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎殊鞭,沒想到半個月后遭垛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡操灿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年锯仪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趾盐。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡庶喜,死狀恐怖小腊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情久窟,我是刑警寧澤秩冈,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站斥扛,受9級特大地震影響入问,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜稀颁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一芬失、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧匾灶,春花似錦棱烂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秃踩,卻和暖如春衬鱼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吞瞪。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工馁启, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驾孔,地道東北人芍秆。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像翠勉,于是被迫代替她去往敵國和親妖啥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

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