煉氣境—第2層: 理解K8S 的組件和架構設計

天下武功起胰,為快不破捐顷。 我是Go 寫的叽唱!


K8S 的架構設計

  • C-S架構
basic.jpg
  • 說明
    K8S 使用的是Master —Worker 這種方式,Master 節(jié)點負責調(diào)度控制,Worker負責干活珠叔,也就是說Master 是地主老財蝎宇,天天只會別人干著干那,Worker 就是農(nóng)民祷安,埋頭耕種即可姥芥。

那么,Worker 是怎么向Master 通信及報告狀態(tài)汇鞭,Master實時怎么管理Worker的工作情況凉唐,怎么規(guī)劃資源調(diào)度的呢?

K8S 基礎組件的說明

重點

組件化霍骄,各個部門各司其職台囱,分為master 組件和節(jié)點(Node)組件。不過還有個公用的都需要的組件读整,那就是網(wǎng)絡組件玄坦,用來node 之間通信的。

master 組件

Master 組件既認為是k8s 的大腦绘沉,是控制核心組件,主要對于整個集群做決策豺总,調(diào)度车伞,檢測,事件控制喻喳。
一般情況另玖,我們至少有3個master 節(jié)點作高可用的k8s 集群。master 節(jié)點不做工作任務表伦,只負責集群的控制谦去。

  • Kube-apiserver

k8s 是有http api接口的,一般蹦哼,我們操作集群會安裝一個kubeClient 客戶端鳄哭,其實,這個客戶端發(fā)出的命令既是調(diào)用了apiServer, 主要是方便用戶通信纲熏。

  • ETCD

etcd 負責保存 Kubernetes Cluster 的配置信息和各種資源的狀態(tài)信息妆丘。當數(shù)據(jù)發(fā)生變化時,etcd 會快速地通知 Kubernetes 相關組件局劲。 比如pod 的狀態(tài)勺拣,deploy 的狀態(tài)等。

etcd是一個高可用的鍵值存儲系統(tǒng)鱼填,主要用于共享配置和服務發(fā)現(xiàn)药有。etcd是由CoreOS開發(fā)并維護的,靈感來自于 ZooKeeper 和 Doozer苹丸,使用Go語言編寫愤惰,并通過Raft一致性算法處理日志復制以保證強一致性

  • Kube-controller-manager

運行控制器苇经,它們是處理集群中常規(guī)任務的后臺線程。邏輯上羊苟,每個控制器是一個單獨的進程塑陵,但為了降低復雜性,它們都被編譯成獨立的可執(zhí)行文件蜡励,并在單個進程中運行令花。
這些控制器包括:

  • 節(jié)點控制器: 當節(jié)點移除時,負責注意和響應凉倚。
  • 副本控制器: 負責維護系統(tǒng)中每個副本控制器對象正確數(shù)量的 Pod兼都。
  • 端點控制器: 填充 端點(Endpoints) 對象(即連接 Services & Pods)。
  • 服務帳戶和令牌控制器: 為新的命名空間創(chuàng)建默認帳戶和 API 訪問令牌.
    說白了就是稽寒,控制pod 的個數(shù)扮碧,存活周期,秘鑰杏糙,賬戶權限慎王,令牌,pod 訪問控制等宏侍。
  • Cloud-controller-manager

cloud-controller-manager 是用于與底層云提供商交互的控制器赖淤。云控制器管理器可執(zhí)行組件是 Kubernetes v1.6 版本中引入的 Alpha 功能。像阿里云和華為云谅河,其實都有一個pod 作為基礎其他服務的控制咱旱。說白了,既是給其他云服務商提供的一個功能組件绷耍,結合他們的服務使用的吐限。

以下控制器具有云提供商依賴關系:
節(jié)點控制器: 用于檢查云提供商以確定節(jié)點是否在云中停止響應后被刪除
路由控制器: 用于在底層云基礎架構中設置路由
服務控制器: 用于創(chuàng)建,更新和刪除云提供商負載平衡器
數(shù)據(jù)卷控制器: 用于創(chuàng)建褂始,附加和裝載卷诸典,并與云提供商進行交互以協(xié)調(diào)卷

  • Kube-scheduler

kube-scheduler 監(jiān)視新創(chuàng)建沒有分配到NodePod,為Pod選擇一個Node崎苗。

  • 插件addons

插件(addon)是實現(xiàn)集群pod和Services功能的 搂赋。Pod由Deployments,ReplicationController等進行管理益缠。Namespace 插件對象是在kube-system Namespace中創(chuàng)建脑奠。

  • DNS

雖然其他插件并不是必需的,但所有 Kubernetes 集群都應該具有Cluster DNS幅慌,許多示例依賴于它宋欺。

Cluster DNS 是一個 DNS 服務器,和您部署環(huán)境中的其他 DNS 服務器一起工作,為 Kubernetes 服務提供DNS記錄齿诞。

Kubernetes 啟動的容器自動將 DNS 服務器包含在 DNS 搜索中酸休。這里插一嘴,目前一般集群用的是CoreDns 組件祷杈。

node 組件

  • Kubelet

kubelet是主要的節(jié)點代理,它監(jiān)測已分配給其節(jié)點的 Pod(通過 apiserver 或通過本地配置文件)斑司,提供如下功能:

  • 掛載 Pod 所需要的數(shù)據(jù)卷(Volume)。
  • 下載 Pod 的 secrets但汞。
  • 通過 Docker 運行(或通過 rkt)運行 Pod 的容器宿刮。
  • 周期性的對容器生命周期進行探測。
  • 如果需要私蕾,通過創(chuàng)建 鏡像 Pod(Mirror Pod) 將 Pod 的狀態(tài)報告回系統(tǒng)的其余部分僵缺。
  • 將節(jié)點的狀態(tài)報告回系統(tǒng)的其余部分。

  • Kube-Proxy

kube-proxy通過維護主機上的網(wǎng)絡規(guī)則并執(zhí)行連接轉發(fā)踩叭,實現(xiàn)了Kubernetes服務抽象磕潮。

就是前面一章說的service 概念的抽象基礎。

  • Docker
    所有的POD都是在docker 引擎中允許的容贝。master的組件也是可以容器化運行的自脯,不過一般的云服務上都是通過二進制安裝的master,因為master 太重要了,穩(wěn)定性需要是第一位的斤富。

  • RKT

支持 rkt 運行容器作為 Docker 的試驗性替代方案 冤今。 不常見。

  • supervisord

supervisord 是一個輕量級的進程監(jiān)控系統(tǒng)茂缚,可以用來保證 kubelet 和 docker 運行。

  • fluentd

fluentd 是一個守護進程屋谭,它有助于提供集群層面日志 集群層面的日志脚囊。

網(wǎng)絡組件

官方集群網(wǎng)絡說明
如何安裝網(wǎng)絡插件看這里

網(wǎng)絡組件解決的是各種通信的問題,如容器到容器桐磁,容器到service,容器到外部悔耘,外部到容器的問題。

各個廠家的選擇不一樣我擂,我們一般使用Flannel 或者Weave 作為網(wǎng)絡組件衬以。后面我們以Flannel 為例,因為他是最簡單的~校摩。 OK , 下一層我們主要說明網(wǎng)絡看峻,學習好了網(wǎng)絡知識才能更好的掌握k8s 。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
禁止轉載衙吩,如需轉載請通過簡信或評論聯(lián)系作者互妓。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冯勉,更是在濱河造成了極大的恐慌澈蚌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灼狰,死亡現(xiàn)場離奇詭異宛瞄,居然都是意外死亡,警方通過查閱死者的電腦和手機交胚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門份汗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人承绸,你說我怎么就攤上這事裸影。” “怎么了军熏?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵轩猩,是天一觀的道長。 經(jīng)常有香客問我荡澎,道長均践,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任摩幔,我火速辦了婚禮彤委,結果婚禮上,老公的妹妹穿的比我還像新娘或衡。我一直安慰自己焦影,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布封断。 她就那樣靜靜地躺著斯辰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坡疼。 梳的紋絲不亂的頭發(fā)上彬呻,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音柄瑰,去河邊找鬼闸氮。 笑死,一個胖子當著我的面吹牛教沾,可吹牛的內(nèi)容都是我干的蒲跨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼授翻,長吁一口氣:“原來是場噩夢啊……” “哼财骨!你這毒婦竟也來了镐作?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤隆箩,失蹤者是張志新(化名)和其女友劉穎该贾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捌臊,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡杨蛋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了理澎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逞力。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖糠爬,靈堂內(nèi)的尸體忽然破棺而出寇荧,到底是詐尸還是另有隱情,我是刑警寧澤执隧,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布揩抡,位于F島的核電站,受9級特大地震影響镀琉,放射性物質(zhì)發(fā)生泄漏峦嗤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一屋摔、第九天 我趴在偏房一處隱蔽的房頂上張望烁设。 院中可真熱鬧,春花似錦钓试、人聲如沸装黑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恋谭。三九已至,卻和暖如春硝烂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铜幽。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工滞谢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人除抛。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓狮杨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親到忽。 傳聞我的和親對象是個殘疾皇子橄教,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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