Kubernetes的工作機(jī)制

這篇文章主要講解了“Kubernetes的工作機(jī)制”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Kubernetes的工作機(jī)制”吧!

青河網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

Kubernetes是一款開源的通用多容器管理軟件,提供了基本的部署、彈性擴(kuò)容,自愈能力、負(fù)載平衡和流量路由等能力,是微服務(wù)應(yīng)用程序的協(xié)調(diào)管理利器。Kubernetes將整個(gè)數(shù)據(jù)中心視為一臺(tái)超級(jí)計(jì)算機(jī),可以管理符合OCI標(biāo)準(zhǔn)的任何類型的容器。(例如Docker、Core OS的rkt容器等等)。Kubernetes的主要功能包括自動(dòng)調(diào)度、自我修復(fù)、自動(dòng)部署、回滾、水平擴(kuò)展和負(fù)載平衡。

Kubernetes 架構(gòu)由兩個(gè)關(guān)鍵組件組成: master節(jié)點(diǎn)和worker節(jié)點(diǎn)(Minions)。

Kubernetes的工作機(jī)制

Master節(jié)點(diǎn) - Kubernetes集群的控制節(jié)點(diǎn)

Master節(jié)點(diǎn)的工作方式類似于一個(gè)團(tuán)隊(duì)的管理者,負(fù)責(zé)整個(gè)集群的管理和控制,分配工作負(fù)載,類似于對(duì)團(tuán)隊(duì)有絕對(duì)控制權(quán)的足球教練。Master節(jié)點(diǎn)負(fù)責(zé)并做出全局決定,安排某個(gè)節(jié)點(diǎn)處理用戶請(qǐng)求。Kubernetes還可以使用多Master節(jié)點(diǎn)設(shè)置來避免單點(diǎn)故障(Multi-Master HA)。Master節(jié)點(diǎn)僅在Linux系統(tǒng)上運(yùn)行,但不限于任何特定平臺(tái),可以是服務(wù)器裸機(jī)、VM、OpenStack的實(shí)例或者任何其他云實(shí)例,但是不要在Master節(jié)點(diǎn)上運(yùn)行用戶容器(user container)。

Kubernetes的工作機(jī)制

Master節(jié)點(diǎn)的組件

Master節(jié)有以下組件。

  • kube-apiserverKube-apiserver遵循橫向擴(kuò)展架構(gòu)設(shè)計(jì),是Master控制節(jié)點(diǎn)的前端,提供了面向外部的接口,通過REST API與外部世界進(jìn)行通信,它是資源對(duì)象的唯一操作入口,其他所有組件都必須通過它提供的API來操作資源數(shù)據(jù)。

  • etcd - 群集存儲(chǔ)etcd是kubernetes默認(rèn)使用的分布式鍵值存儲(chǔ)庫(kù),提供了一種可靠的方式來存儲(chǔ)kubernetes集群中的數(shù)據(jù),主要被用來共享配置和服務(wù)發(fā)現(xiàn)。集群的所有狀態(tài)都存儲(chǔ)在etcd實(shí)例中,本身具有監(jiān)控的能力,因此當(dāng)etcd中的信息發(fā)生變化時(shí),能夠快速的通知集群中相關(guān)的組件。etcd扮演的角色如此重要,因此,必須有一個(gè)可靠的備份計(jì)劃。

Kubernetes的工作機(jī)制

  • kube-controller-manager

Kube-Controller Manager是集群的管理控制中心,維護(hù)集群中的所有控制器(controller),對(duì)維持集群的穩(wěn)定和自我修復(fù),實(shí)現(xiàn)高可用,副本控制等起關(guān)鍵作用。它是一個(gè)嵌入式控制器并負(fù)責(zé)命名空間創(chuàng)建和垃圾收集的守護(hù)進(jìn)程,主要管理以下控制器:

  • Node Controller - 管理節(jié)點(diǎn)(創(chuàng)建,更新和刪除)。

  • Replication controller - 根據(jù)清單維護(hù)pod的數(shù)量。

  • Service Account & Token controller - 為新名稱空間創(chuàng)建默認(rèn)帳戶和API令牌。

  • Endpoints Controller - 管理服務(wù)于端點(diǎn)對(duì)象(服務(wù),pod)。

  • kube-scheduler

kube-scheduler通過apiserver實(shí)時(shí)監(jiān)聽來自新建pod的請(qǐng)求,并將工作負(fù)載分配到合適的工作節(jié)點(diǎn)。它監(jiān)控所有工作節(jié)點(diǎn)的資源利用率,并根據(jù)新pod的資源需求和現(xiàn)有工作節(jié)點(diǎn)的負(fù)載做出邏輯決策。Kube-scheduler還需要考慮管理員定義的規(guī)則(親和性和反親和性,約束)。

Nodes Minions - Kubernetes工作節(jié)點(diǎn)

Nodes比Master節(jié)點(diǎn)簡(jiǎn)單得多,是集群最小的計(jì)算單元,簡(jiǎn)單地完成master節(jié)點(diǎn)分配下去的任務(wù)。如果節(jié)點(diǎn)出現(xiàn)故障或掛掉了,我們可以輕易的地將其與新節(jié)點(diǎn)交換,讓業(yè)務(wù)恢復(fù)正常。換句話說,該節(jié)點(diǎn)提供了在其上運(yùn)行pod的所有必要服務(wù)。node節(jié)點(diǎn)可以是裸機(jī)、虛擬機(jī)、OpenStack實(shí)例或云實(shí)例。

Kubernetes的工作機(jī)制

Node節(jié)點(diǎn)由以下組件組成:

  • Kubelet - Kuberbernets主要代理

Kubelet是Kubernetes中最主要的控制器,它在每個(gè)節(jié)點(diǎn)上運(yùn)行,是Pod和Node API的主要實(shí)現(xiàn)者,并使從服務(wù)器可以與主服務(wù)器通信。它把Node節(jié)點(diǎn)注冊(cè)到集群里,并監(jiān)視Master kube- apiserver以接收指令進(jìn)行工作分配。所在Node節(jié)點(diǎn)上的Pod的創(chuàng)建、修改、監(jiān)控、刪除等全生命周期管理都是它管理。同時(shí)Kubelet定時(shí)“上報(bào)”所在Node的狀態(tài)信息到API Server里,如果pod存在問題,它會(huì)向Master報(bào)告。Kubelet對(duì)外暴露只讀端口:10255,可以獲取Kubelet監(jiān)控狀態(tài)信息,該端口是免認(rèn)證非安全的。

    • / spec endpoint - 提供有關(guān)運(yùn)行節(jié)點(diǎn)的信息。

    • / healthz endpoint - 其運(yùn)行狀況檢查端點(diǎn)。

    • / pods endpoint - 提供運(yùn)行pod信息。

  • 容器引擎 - 容器Run-time

Pods將容器打包到其中。要部署容器,你需要容器Run-time軟件。在大多數(shù)情況下,它就是一個(gè)docker引擎,當(dāng)然我們還可以使用其他容器運(yùn)行時(shí)軟件(例如:rkt)。容器引擎管理在pod上運(yùn)行的容器,它將拉取鏡像以進(jìn)行部署并啟動(dòng)/停止容器上的容器。

  • Kube-proxy

kube-proxy是node節(jié)點(diǎn)的大腦,它確保每個(gè)pod可以獲得唯一的IP。如果要在一個(gè)pod中打包多個(gè)容器,則pod中的所有容器共享一個(gè)IP。它還對(duì)服務(wù)中的所有pod進(jìn)行負(fù)載均衡(通過iptables規(guī)則引導(dǎo)訪問至服務(wù)IP,并將重定向至正確的后端應(yīng)用,通過這種方式提供了一個(gè)高可用的負(fù)載均衡解決方案)。

pod創(chuàng)建流程

下圖顯示了pod在工作節(jié)點(diǎn)中創(chuàng)建的流程。Kubectl是命令行實(shí)用程序,你可以在其中將命令傳遞給Kubernetes集群以創(chuàng)建和管理各種Kubernetes組件。

Kubernetes的工作機(jī)制

感謝各位的閱讀,以上就是“Kubernetes的工作機(jī)制”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Kubernetes的工作機(jī)制這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

本文標(biāo)題:Kubernetes的工作機(jī)制
文章鏈接:http://muchs.cn/article6/jephig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈小程序開發(fā)、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站改版域名注冊(cè)

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)