亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

K8S架構(gòu)原理及其工作流程

K8S

容器編排系統(tǒng)

容器編排系統(tǒng)需要滿足的條件:

  1. 服務(wù)注冊(cè),服務(wù)發(fā)現(xiàn)
  2. 負(fù)載均衡
  3. 配置、存儲(chǔ)管理
  4. 健康檢查
  5. 自動(dòng)擴(kuò)縮容
  6. 零宕機(jī)

K8S整體架構(gòu)圖

 

K8S架構(gòu)原理及其工作流程

K8S整體架構(gòu)

Kubernetes采用主從分布式架構(gòu),包括Master(主節(jié)點(diǎn))、Worker(從節(jié)點(diǎn)或工作節(jié)點(diǎn)),以及客戶端命令行工具kubectl和其它附加項(xiàng)。

K8S Master

 

K8S架構(gòu)原理及其工作流程

Master架構(gòu)圖

etcd保存了整個(gè)集群的狀態(tài),CoreOS提供(用戶期望狀態(tài))。K/V存儲(chǔ),只能存儲(chǔ)Api Server中支持的數(shù)據(jù)范式存儲(chǔ);

Api Server提供了資源操作的唯一入口,并提供認(rèn)證、授權(quán)、訪問(wèn)控制、API注冊(cè)和發(fā)現(xiàn)等機(jī)制;

controller負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測(cè)、自動(dòng)擴(kuò)展、滾動(dòng)更新等(確保用戶期望狀態(tài)與實(shí)際運(yùn)行狀態(tài)一致);

scheduler負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上,pod是調(diào)度的最小單位;

K8S Node

 

K8S架構(gòu)原理及其工作流程

Node架構(gòu)圖

kubelet:會(huì)監(jiān)控Api Server上的資源變動(dòng),若變動(dòng)與自己有關(guān)系,kublet就去執(zhí)行任務(wù);定期向master會(huì)報(bào)節(jié)點(diǎn)資源使用情況。

kube-proxy:實(shí)現(xiàn)service的抽象,為一組pod抽象的服務(wù)提供統(tǒng)一接口并提供負(fù)載均衡。

POD創(chuàng)建過(guò)程

 

K8S架構(gòu)原理及其工作流程

POD創(chuàng)建時(shí)序圖

1、用戶提交創(chuàng)建POD請(qǐng)求

2、API Server 處理用戶請(qǐng)求,存儲(chǔ)Pod數(shù)據(jù)到Etcd

3、Schedule通過(guò)和 API Server的監(jiān)聽(tīng)機(jī)制,查看到新的pod,嘗試為Pod綁定Node

4、過(guò)濾主機(jī):調(diào)度器用一組規(guī)則過(guò)濾掉不符合要求的主機(jī),比如Pod指定了所需要的資源,那么就要過(guò)濾掉資源不夠的主機(jī)

5、主機(jī)打分:對(duì)第一步篩選出的符合要求的主機(jī)進(jìn)行打分,在此階段,調(diào)度器會(huì)考慮一些整體優(yōu)化策略,比如把一個(gè)Replication Controller的副本分布到不同的主機(jī)上,使用最低負(fù)載的主機(jī)等

6、選擇主機(jī):選擇得分最高的主機(jī),進(jìn)行binding操作,結(jié)果存儲(chǔ)到Etcd中

7、kubelet根據(jù)調(diào)度結(jié)果執(zhí)行Pod創(chuàng)建操作:綁定成功后,會(huì)啟動(dòng)container, Docker run, scheduler會(huì)調(diào)用API Server的API在etcd中創(chuàng)建一個(gè)bound pod對(duì)象,描述在一個(gè)工作節(jié)點(diǎn)上綁定運(yùn)行的所有pod信息。運(yùn)行在每個(gè)工作節(jié)點(diǎn)上的kubelet也會(huì)定期與etcd同步bound pod信息,一旦發(fā)現(xiàn)應(yīng)該在該工作節(jié)點(diǎn)上運(yùn)行的bound pod對(duì)象沒(méi)有更新,則調(diào)用Docker API創(chuàng)建并啟動(dòng)pod內(nèi)的容器

8、POD創(chuàng)建完成

K8S各組件工作流程

 

K8S架構(gòu)原理及其工作流程

工作流程

①運(yùn)維人員向kube-apiserver發(fā)出指令(我想干什么,我期望事情是什么狀態(tài))

②api響應(yīng)命令,通過(guò)一系列認(rèn)證授權(quán),把pod數(shù)據(jù)存儲(chǔ)到etcd,創(chuàng)建deployment資源并初始化。(期望狀態(tài))

③controller通過(guò)list-watch機(jī)制,監(jiān)測(cè)發(fā)現(xiàn)新的deployment,將該資源加入到內(nèi)部工作隊(duì)列,發(fā)現(xiàn)該資源沒(méi)有關(guān)聯(lián)的pod和replicaset,啟用deployment controller創(chuàng)建replicaset資源,再啟用replicaset controller創(chuàng)建pod。

④所有controller被創(chuàng)建完成后.將deployment,replicaset,pod資源更新存儲(chǔ)到etcd。

⑤scheduler通過(guò)list-watch機(jī)制,監(jiān)測(cè)發(fā)現(xiàn)新的pod,經(jīng)過(guò)主機(jī)過(guò)濾、主機(jī)打分規(guī)則,將pod綁定(binding)到合適的主機(jī)。

⑥將綁定結(jié)果存儲(chǔ)到etcd。

⑦kubelet每隔 20s(可以自定義)向apiserver通過(guò)NodeName 獲取自身Node上所要運(yùn)行的pod清單.通過(guò)與自己的內(nèi)部緩存進(jìn)行比較,新增加pod。

⑧kubelet創(chuàng)建pod。

⑨kube-proxy為新創(chuàng)建的pod注冊(cè)動(dòng)態(tài)DNS到CoreOS。給pod的service添加iptables/ipvs規(guī)則,用于服務(wù)發(fā)現(xiàn)和負(fù)載均衡。

⑩controller通過(guò)control loop(控制循環(huán))將當(dāng)前pod狀態(tài)與用戶所期望的狀態(tài)做對(duì)比,如果當(dāng)前狀態(tài)與用戶期望狀態(tài)不同,則controller會(huì)將pod修改為用戶期望狀態(tài),實(shí)在不行會(huì)將此pod刪掉,然后重新創(chuàng)建pod。

后記

本文是對(duì)K8S架構(gòu)原理及其工作流程的一個(gè)匯總,可能會(huì)不好理解,但是在學(xué)習(xí)K8S過(guò)程中,這個(gè)是跳不過(guò)去的,讓我們一起努力吧!

分享到:
標(biāo)簽:架構(gòu) K8S
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定