kubernetes基本概念與組件

一、基本概念

Kubernetes 中的絕大部分概念都抽象成 Kubernetes 管理的一種資源對(duì)象寨躁,下面我們一起學(xué)習(xí)一些資源對(duì)象:

  1. Master:Master 節(jié)點(diǎn)是 Kubernetes 集群的控制節(jié)點(diǎn)穆碎,負(fù)責(zé)整個(gè)集群的管理和控制。Master 節(jié)點(diǎn)上包含以下組件:
  2. kube-apiserver:集群控制的入口职恳,提供HTTP REST 服務(wù)
  3. kube-controller-manager: Kubernetes集群中所有資源對(duì)象的自動(dòng)化控制中心
  4. kube-scheduler:負(fù)責(zé)Pod調(diào)度
  5. Node: Node節(jié)點(diǎn)是Kubernetes 集群中的工作節(jié)點(diǎn)所禀,Node上的工作負(fù)載由Master節(jié)點(diǎn)分配,工作負(fù)載主要是運(yùn)行容器應(yīng)用放钦。Node 節(jié)點(diǎn)上包含以下組件:
    ? - kubelet:負(fù)責(zé)Pod的創(chuàng)建色徘、啟動(dòng)、監(jiān)控操禀、重啟褂策、銷(xiāo)毀等工作,同時(shí)與Master 節(jié)點(diǎn)協(xié)作颓屑,實(shí)現(xiàn)集群管理的基本功能斤寂。
    ? - kube-proxy:實(shí)現(xiàn)Kubernetes Service 的通信和負(fù)載均衡
    ? - 運(yùn)行容器化(Pod)應(yīng)用
  • Pod:Pod是Kubernetes 最基本的部署調(diào)度單元。每個(gè)Pod可以由一個(gè)或者多個(gè)業(yè)務(wù)容器和一個(gè)根容器(Pause容器)組成揪惦。一個(gè)Pod表示某個(gè)應(yīng)用的實(shí)例

  • ReplicaSet:是Pod副本的抽象遍搞,用于解決Pod的擴(kuò)容和伸縮

  • Deployment: Deployment 表示部署,在內(nèi)部使用ReplicaSet來(lái)實(shí)現(xiàn)器腋,可以通過(guò)Deployment 來(lái)生成相應(yīng)的Pod副本的創(chuàng)建

  • Service: Service是Kubernetes 最重要的資源對(duì)象溪猿。Kubernetes中的Service對(duì)象可以對(duì)應(yīng)微服務(wù)架構(gòu)中的微服務(wù)钩杰。Service定義了服務(wù)的訪問(wèn)入口,服務(wù)的調(diào)用者通過(guò)這個(gè)抵制訪問(wèn)Service后端的Pod副本實(shí)例诊县。Service通過(guò)Label Selector 同后端的Pod副本建立關(guān)系讲弄,Deployment 保證后端Pod副本的數(shù)量,也就是保證服務(wù)的伸縮性翎冲。


    在這里插入圖片描述

    Kubernetes 主要由以下幾個(gè)核心組件組成:

  • etcd 保存了整個(gè)集群的狀態(tài)垂睬,就是一個(gè)數(shù)據(jù)庫(kù);

  • apiserver 提供了資源操作的唯一入口抗悍,并提供認(rèn)證驹饺、授權(quán)、訪問(wèn)控制缴渊、API注冊(cè)和發(fā)現(xiàn)等機(jī)制赏壹;

  • controller manager 負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測(cè)衔沼、自動(dòng)擴(kuò)展蝌借、滾動(dòng)更新等;

  • scheduler 負(fù)責(zé)資源的調(diào)度指蚁,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上菩佑;

  • kubelet 負(fù)責(zé)維護(hù)容器的生命周期,同時(shí)也負(fù)責(zé) Volume(CSI)和網(wǎng)絡(luò)(CNI)的管理凝化;

  • Container runtime 負(fù)責(zé)鏡像管理以及Pod和容器的真正運(yùn)行(CRI)稍坯;

  • kube-proxy 負(fù)責(zé)為Service 提供 cluster 內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡;

當(dāng)然除了上面這些核心組件還有一些插件:

  • kube-dns 負(fù)責(zé)為整個(gè)集群提供DNS服務(wù)
  • Ingress Controller 為服務(wù)提供外網(wǎng)入口
  • Heapster 提供資源監(jiān)控
  • Dashboard 提供GUI

組件通信

Kubernetes 多組件之間的通信原理:

  • apiserver 負(fù)責(zé) etcd 存儲(chǔ)的所有操作搓劫,且只有apiserver 才直接操作etcd集群
  • apiserver 對(duì)內(nèi)(集群中的其他組件)和對(duì)外(用戶(hù))提供統(tǒng)一的REST API瞧哟,其他組件均通過(guò)apiserver 進(jìn)行通信
    ? - controller manager、 scheduler枪向、 kube-proxy 和 kubelet 等均通過(guò)apiserver watch API 監(jiān)控資源變化情況勤揩,并對(duì)資源作相應(yīng)的操作
    ? - 所有需要更新資源狀態(tài)的操作均通過(guò) apiserver 的REST API 進(jìn)行
  • apiserver 也會(huì)直接調(diào)用 kubelet API(如 logs,exec秘蛔,attach等)陨亡,默認(rèn)不校驗(yàn)kubelet 證書(shū),但可以通過(guò) <code>- -kubelet -certificate-authority</code> 開(kāi)啟(而GKE通過(guò)SSH隧道保護(hù)他們之間的通信)

比如最典型的創(chuàng)建Pod的流程:


在這里插入圖片描述
  • 用戶(hù)通過(guò)REST API 創(chuàng)建一個(gè)Pod
  • apiserver 將其寫(xiě)入etcd
  • scheduler 檢測(cè)到未綁定 Node 的 Pod缠犀,開(kāi)始調(diào)度并更新Pod 的 Node 綁定
  • kubelet 檢測(cè)到有新的 Pod 調(diào)度過(guò)來(lái)数苫,通過(guò) container runtime 運(yùn)行該 Pod
  • kubelet 通過(guò) container runtime 取到 Pod 狀態(tài),并更新到 apiserver 中
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辨液,一起剝皮案震驚了整個(gè)濱河市虐急,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滔迈,老刑警劉巖止吁,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件被辑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡敬惦,警方通過(guò)查閱死者的電腦和手機(jī)盼理,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俄删,“玉大人宏怔,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵囱稽,是天一觀的道長(zhǎng)袁勺。 經(jīng)常有香客問(wèn)我榜跌,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮玷或,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘片任。我一直安慰自己偏友,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布对供。 她就那樣靜靜地躺著约谈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪犁钟。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天泼橘,我揣著相機(jī)與錄音涝动,去河邊找鬼。 笑死炬灭,一個(gè)胖子當(dāng)著我的面吹牛醋粟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播重归,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼米愿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鼻吮?” 一聲冷哼從身側(cè)響起育苟,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椎木,沒(méi)想到半個(gè)月后违柏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體博烂,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年漱竖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了禽篱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡馍惹,死狀恐怖躺率,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情万矾,我是刑警寧澤悼吱,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站勤众,受9級(jí)特大地震影響舆绎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜们颜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一吕朵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窥突,春花似錦努溃、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至称近,卻和暖如春第队,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刨秆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工凳谦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人衡未。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓尸执,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親缓醋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子如失,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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