這篇文章主要講解了“Kubernetes的工作機制”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Kubernetes的工作機制”吧!
青河網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)公司。
Kubernetes是一款開源的通用多容器管理軟件,提供了基本的部署、彈性擴容,自愈能力、負載平衡和流量路由等能力,是微服務應用程序的協(xié)調(diào)管理利器。Kubernetes將整個數(shù)據(jù)中心視為一臺超級計算機,可以管理符合OCI標準的任何類型的容器。(例如Docker、Core OS的rkt容器等等)。Kubernetes的主要功能包括自動調(diào)度、自我修復、自動部署、回滾、水平擴展和負載平衡。
Kubernetes 架構由兩個關鍵組件組成: master節(jié)點和worker節(jié)點(Minions)。
Master節(jié)點的工作方式類似于一個團隊的管理者,負責整個集群的管理和控制,分配工作負載,類似于對團隊有絕對控制權的足球教練。Master節(jié)點負責并做出全局決定,安排某個節(jié)點處理用戶請求。Kubernetes還可以使用多Master節(jié)點設置來避免單點故障(Multi-Master HA)。Master節(jié)點僅在Linux系統(tǒng)上運行,但不限于任何特定平臺,可以是服務器裸機、VM、OpenStack的實例或者任何其他云實例,但是不要在Master節(jié)點上運行用戶容器(user container)。
Master節(jié)有以下組件。
kube-apiserverKube-apiserver遵循橫向擴展架構設計,是Master控制節(jié)點的前端,提供了面向外部的接口,通過REST API與外部世界進行通信,它是資源對象的唯一操作入口,其他所有組件都必須通過它提供的API來操作資源數(shù)據(jù)。
etcd - 群集存儲etcd是kubernetes默認使用的分布式鍵值存儲庫,提供了一種可靠的方式來存儲kubernetes集群中的數(shù)據(jù),主要被用來共享配置和服務發(fā)現(xiàn)。集群的所有狀態(tài)都存儲在etcd實例中,本身具有監(jiān)控的能力,因此當etcd中的信息發(fā)生變化時,能夠快速的通知集群中相關的組件。etcd扮演的角色如此重要,因此,必須有一個可靠的備份計劃。
kube-controller-manager
Kube-Controller Manager是集群的管理控制中心,維護集群中的所有控制器(controller),對維持集群的穩(wěn)定和自我修復,實現(xiàn)高可用,副本控制等起關鍵作用。它是一個嵌入式控制器并負責命名空間創(chuàng)建和垃圾收集的守護進程,主要管理以下控制器:
Node Controller - 管理節(jié)點(創(chuàng)建,更新和刪除)。
Replication controller - 根據(jù)清單維護pod的數(shù)量。
Service Account & Token controller - 為新名稱空間創(chuàng)建默認帳戶和API令牌。
Endpoints Controller - 管理服務于端點對象(服務,pod)。
kube-scheduler
kube-scheduler通過apiserver實時監(jiān)聽來自新建pod的請求,并將工作負載分配到合適的工作節(jié)點。它監(jiān)控所有工作節(jié)點的資源利用率,并根據(jù)新pod的資源需求和現(xiàn)有工作節(jié)點的負載做出邏輯決策。Kube-scheduler還需要考慮管理員定義的規(guī)則(親和性和反親和性,約束)。
Nodes比Master節(jié)點簡單得多,是集群最小的計算單元,簡單地完成master節(jié)點分配下去的任務。如果節(jié)點出現(xiàn)故障或掛掉了,我們可以輕易的地將其與新節(jié)點交換,讓業(yè)務恢復正常。換句話說,該節(jié)點提供了在其上運行pod的所有必要服務。node節(jié)點可以是裸機、虛擬機、OpenStack實例或云實例。
Node節(jié)點由以下組件組成:
Kubelet - Kuberbernets主要代理
Kubelet是Kubernetes中最主要的控制器,它在每個節(jié)點上運行,是Pod和Node API的主要實現(xiàn)者,并使從服務器可以與主服務器通信。它把Node節(jié)點注冊到集群里,并監(jiān)視Master kube- apiserver以接收指令進行工作分配。所在Node節(jié)點上的Pod的創(chuàng)建、修改、監(jiān)控、刪除等全生命周期管理都是它管理。同時Kubelet定時“上報”所在Node的狀態(tài)信息到API Server里,如果pod存在問題,它會向Master報告。Kubelet對外暴露只讀端口:10255,可以獲取Kubelet監(jiān)控狀態(tài)信息,該端口是免認證非安全的。
/ spec endpoint - 提供有關運行節(jié)點的信息。
/ healthz endpoint - 其運行狀況檢查端點。
/ pods endpoint - 提供運行pod信息。
容器引擎 - 容器Run-time
Pods將容器打包到其中。要部署容器,你需要容器Run-time軟件。在大多數(shù)情況下,它就是一個docker引擎,當然我們還可以使用其他容器運行時軟件(例如:rkt)。容器引擎管理在pod上運行的容器,它將拉取鏡像以進行部署并啟動/停止容器上的容器。
Kube-proxy
kube-proxy是node節(jié)點的大腦,它確保每個pod可以獲得唯一的IP。如果要在一個pod中打包多個容器,則pod中的所有容器共享一個IP。它還對服務中的所有pod進行負載均衡(通過iptables規(guī)則引導訪問至服務IP,并將重定向至正確的后端應用,通過這種方式提供了一個高可用的負載均衡解決方案)。
下圖顯示了pod在工作節(jié)點中創(chuàng)建的流程。Kubectl是命令行實用程序,你可以在其中將命令傳遞給Kubernetes集群以創(chuàng)建和管理各種Kubernetes組件。
感謝各位的閱讀,以上就是“Kubernetes的工作機制”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Kubernetes的工作機制這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!
本文標題:Kubernetes的工作機制
文章鏈接:http://www.rwnh.cn/article6/jephig.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、小程序開發(fā)、外貿(mào)網(wǎng)站建設、品牌網(wǎng)站設計、網(wǎng)站改版、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)