k8s架構(gòu)原理-創(chuàng)新互聯(lián)

一、k8s架構(gòu)圖
k8s架構(gòu)原理

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比洪山網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式洪山網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋洪山地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

二、k8s架構(gòu)模式:
master(cluster)/worker(node)架構(gòu)

master組件:
1.kube-apiserver:

提供restful接口指令供客戶端或者其他組件調(diào)用,客戶端指的是kubectl命令行工具,其他通信組件包括controller和scheduler

2.etcd:

負(fù)責(zé)存儲(chǔ)集群狀態(tài)

3.controller

管理并實(shí)現(xiàn)k8s的的各種流程,使用k8s管理容器,而不是直接使用容器,目的就是為容器提供統(tǒng)一編排,為用戶提供聲明式的調(diào)用,k8s維護(hù)著用戶的期望,用戶只要告訴k8s需要幾個(gè)服務(wù),需要什么配置就可以了,不需要關(guān)心底層k8s怎么實(shí)現(xiàn)的,但是k8s除了正常的創(chuàng)建管理,還伴隨著異常情況的發(fā)生,比如容器掛掉,網(wǎng)絡(luò)不通等,這時(shí)候需要controller監(jiān)控資源狀態(tài)等信息并更新到etcd,controller相當(dāng)于運(yùn)維工程師的角色.
k8s把各種操作都認(rèn)為是某種類型的某個(gè)方法,從而將不同的操作分給不同的方法執(zhí)行,k8s認(rèn)為一切皆資源,繁復(fù)的內(nèi)容抽象成不同的資源放到不同的方法上執(zhí)行

4.Scheduler

資源調(diào)度,根據(jù)系統(tǒng)資源的使用情況,將pod合理分配到相應(yīng)的node節(jié)點(diǎn),并通過(guò)apiserve告知etcd更新數(shù)據(jù)庫(kù)

worker組件:
1.kubelet

controller如何監(jiān)控不通資源信息,Scheduler如何給pod分配資源,實(shí)際的操作都是交給kubelet來(lái)完成的,例如,創(chuàng)建pod,刪除pod,創(chuàng)建數(shù)據(jù)卷等

2.kube-proxy

按照用戶的期望創(chuàng)建好環(huán)境,pod容器怎么才能對(duì)外提供服務(wù)?
    pod生成是會(huì)自動(dòng)分配一個(gè)ip,但這個(gè)ip是動(dòng)態(tài)生成的,并不固定,這時(shí)就需要一個(gè)固定ip代理pod來(lái)對(duì)外提供服務(wù),這個(gè)就是service資源,扮演者服務(wù)發(fā)現(xiàn)和負(fù)載均衡的功能。
但是service怎么代理到pod上呢?
這時(shí)就需要core-dns,為新創(chuàng)建的pod注冊(cè)動(dòng)態(tài)DNS。給pod的service添加iptables/ipvs規(guī)則,用于服務(wù)發(fā)現(xiàn)和負(fù)載均衡,所有網(wǎng)絡(luò)相關(guān)的請(qǐng)求響應(yīng)都有kube-proxy代理完成

3.container runtime

負(fù)責(zé)容器運(yùn)行

三、工作流程

1.創(chuàng)建pod

  • apiserver接收到用戶創(chuàng)建pod的請(qǐng)求,會(huì)根據(jù)用戶提交的參數(shù)值創(chuàng)建pod對(duì)象,apiserver檢測(cè)用戶提交的參數(shù),參數(shù)不合規(guī)則創(chuàng)建失敗
  • pod對(duì)象創(chuàng)建成功后,etcd會(huì)持久化這個(gè)對(duì)象,測(cè)試pod處于pending狀態(tài)
  • Scheduler會(huì)通過(guò)list-watch機(jī)制 調(diào)用apiserver監(jiān)聽(tīng)etcd數(shù)據(jù)變化,如果發(fā)現(xiàn)有個(gè)pod未bind到node上,就會(huì)讀取etcd存儲(chǔ)的pod信息,根據(jù)策略算法,將pod調(diào)度到相應(yīng)的node上
  • 此時(shí)各node也會(huì)通過(guò)kubectl調(diào)用apiserver接口監(jiān)聽(tīng)etcd對(duì)象狀態(tài)變化,被分配到的node發(fā)現(xiàn)當(dāng)前的node狀態(tài),和用戶期望的狀態(tài)有個(gè)pod不一致,他就會(huì)創(chuàng)建pod(包括掛載數(shù)據(jù)卷,創(chuàng)建pause容器接管應(yīng)用容器網(wǎng)絡(luò)),創(chuàng)建成功后,會(huì)將信息通過(guò)apiserver更新到etcd中.

2.controller創(chuàng)建pod
第1步成功之后,需要controller接手監(jiān)控工作
用戶期望pod副本數(shù)是3,但此時(shí)宕掉一個(gè)pod, controller loop 監(jiān)測(cè)到 etcd 中存儲(chǔ)的對(duì)象狀態(tài)有些與系統(tǒng) current state 不一致(此例例?子中就 是那個(gè)宕掉的容器?導(dǎo)致的), replicationController, replicaSet, deployment 等等定義必須有 3 個(gè)容?, 然?目前系統(tǒng)只有 2 個(gè) running, 然后通過(guò)對(duì)應(yīng)的?用戶定義時(shí)存儲(chǔ)在 etcd 的對(duì)象類 型, 相應(yīng)的controller 會(huì)去響應(yīng), 發(fā)現(xiàn)少了了 1 個(gè)容器?, 需要?jiǎng)?chuàng)建 1 個(gè)新容器?時(shí), 由該 controller 請(qǐng)求 api server 創(chuàng)建新容器,接下來(lái)跟第一步相同

總結(jié):

  1. etcd 僅能通過(guò) api server 訪問(wèn)
  2. etcd 中通過(guò) api server 來(lái)保證存儲(chǔ)數(shù)據(jù)是結(jié)構(gòu)化的
  3. controller, scheduler, kubelet, kube-proxy 這些組件都是實(shí)質(zhì)上都是通過(guò) watch etcd 中存儲(chǔ)的對(duì)象狀態(tài)來(lái)進(jìn)?行行對(duì)應(yīng)?工作的, 但是必須通過(guò) api server; 他們之間是沒(méi)有調(diào)度的 上下級(jí)關(guān)系的, ?而是通過(guò) etcd 對(duì)象狀態(tài)的變化來(lái)觸發(fā)對(duì)應(yīng)的 event 處理理
  4. k8s 內(nèi)部?工作的機(jī)制實(shí)質(zhì)是維持?用戶提交的期望 (存儲(chǔ)在 etcd) 與系統(tǒng)當(dāng)前狀態(tài)?一致
  5. k8s 中有個(gè) control loop ?一直循環(huán)監(jiān)控著系統(tǒng)狀態(tài)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁(yè)名稱:k8s架構(gòu)原理-創(chuàng)新互聯(lián)
新聞來(lái)源:http://muchs.cn/article4/psioe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)網(wǎng)站排名、搜索引擎優(yōu)化、微信小程序微信公眾號(hào)、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化