Kubernetes總架構圖

來源:互聯網
上載者:User

標籤:load   nio   擷取   核心   即時   file   應對   部落格   sch   

本文CSDN部落格地址:http://blog.csdn.net/huwh_/article/details/71308171

一、Kubernetes的總架構圖二、Kubernetes各個組件介紹 (一)kube-master[控制節點]
  • master的工作流程圖

  1. Kubecfg將特定的請求,比如建立Pod,發送給Kubernetes Client。

  2. Kubernetes Client將請求發送給API server。

  3. API Server根據請求的類型,比如建立Pod時storage類型是pods,然後依此選擇何種REST Storage API對請求作出處理。

  4. REST Storage API對的請求作相應的處理。

  5. 將處理的結果存入高可用KVStore for Redis系統Etcd中。

  6. 在API Server響應Kubecfg的請求後,Scheduler會根據Kubernetes Client擷取叢集中運行Pod及Minion/Node資訊。

  7. 依據從Kubernetes Client擷取的資訊,Scheduler將未分發的Pod分發到可用的Minion/Node節點上。

1、API Server[資源操作入口]
  1. 提供了資來源物件的唯一操作入口,其他所有組件都必須通過它提供的API來操作資源資料,只有API Server與儲存通訊,其他模組通過API Server訪問叢集狀態。

    1. 第一,是為了保證叢集狀態訪問的安全。

    2. 第二,是為了隔離叢集狀態訪問的方式和後端儲存實現的方式:API Server是狀態訪問的方式,不會因為後端儲存技術etcd的改變而改變。

  2. 作為kubernetes系統的入口,封裝了核心對象的增刪改查操作,以RESTFul介面方式提供給外部客戶和內部組件調用。對相關的資源資料“全量查詢”+“變化監聽”,即時完成相關的業務功能。

更多API Server資訊請參考:Kubernetes核心原理(一)之API Server2、Controller Manager[內部管理控制中心]
  1. 實現叢集故障檢測和恢複的自動化工作,負責執行各種控制器,主要有:

    • endpoint-controller:定期關聯service和pod(關聯資訊由endpoint對象維護),保證service到pod的映射總是最新的。

    • replication-controller:定期關聯replicationController和pod,保證replicationController定義的複製數量與實際運行pod的數量總是一致的。

更多Controller Manager資訊請參考:Kubernetes核心原理(二)之Controller Manager3、Scheduler[叢集分發調度器]
  1. Scheduler收集和分析當前Kubernetes叢集中所有Minion節點的資源(記憶體、CPU)負載情況,然後依此分發建立的Pod到Kubernetes叢集中可用的節點。

  2. 即時監測Kubernetes叢集中未分發和已分發的所有啟動並執行Pod。

  3. Scheduler也監測Minion節點資訊,由於會頻繁尋找Minion節點,Scheduler會緩衝一份最新的資訊在本地。

  4. 最後,Scheduler在分發Pod到指定的Minion節點後,會把Pod相關的資訊Binding寫回API Server。

更多Scheduler資訊請參考:Kubernetes核心原理(三)之Scheduler(二)kube-node[服務節點]
  • kubelet結構圖

1、Kubelet[節點上的Pod管家]
  1. 負責Node節點上pod的建立、修改、監控、刪除等全生命週期的管理

  2. 定時上報本Node的狀態資訊給API Server。

  3. kubelet是Master API Server和Minion之間的橋樑,接收Master API Server分配給它的commands和work,與持久性KVStore for Redisetcd、file、server和http進行互動,讀取配置資訊。

  4. 具體的工作如下:

    1. 設定容器的環境變數、給容器綁定Volume、給容器綁定Port、根據指定的Pod運行一個單一容器、給指定的Pod建立network 容器。

    2. 同步Pod的狀態、同步Pod的狀態、從cAdvisor擷取Container info、 pod info、 root info、 machine info。

    3. 在容器中運行命令、殺死容器、刪除Pod的所有容器。

2、Proxy[負載平衡、路由轉寄]
  1. Proxy是為瞭解決外部網路能夠訪問跨機器叢集中容器提供的應用服務而設計的,運行在每個Node上。Proxy提供TCP/UDP sockets的proxy,每建立一種Service,Proxy主要從etcd擷取Services和Endpoints的配置資訊(也可以從file擷取),然後根據配置資訊在Minion上啟動一個Proxy的進程並監聽相應的服務連接埠,當外部請求發生時,Proxy會根據Load Balancer將請求分發到後端正確的容器處理。

  2. Proxy不但解決了同一主宿機相同服務連接埠衝突的問題,還提供了Service轉寄服務連接埠對外提供服務的能力,Proxy後端使用了隨機、輪循負載平衡演算法。

3、kubectl(kubelet client)[叢集管理命令列工具集]
  1. 通過用戶端的kubectl命令集操作,API Server響應對應的命令結果,從而達到對kubernetes叢集的管理。

參考文章:

https://yq.aliyun.com/articles/47308?spm=5176.100240.searchblog.19.jF7FFa

Kubernetes總架構圖

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.