如下文字及圖形摘字https://www.kubernetes.org.cn/kubernetes%E8%AE%BE%E8%AE%A1%E6%9E%B6%E6%9E%84
架構圖
api
在這張系統架構圖中,咱們把服務分爲運行在工做節點上的服務和組成集羣級別控制板的服務。
Kubernetes節點有運行應用容器必備的服務,而這些都是受Master的控制。
每次個節點上固然都要運行Docker。Docker來負責全部具體的映像下載和容器運行。
Kubernetes主要由如下幾個核心組件組成: 服務器
Kubernetes設計理念和功能其實就是一個相似Linux的分層架構,以下圖所示 網絡
kubelet負責管理pods和它們上面的容器,images鏡像、volumes、etc。 架構
每個節點也運行一個簡單的net/proxy和loadbalance(詳見services FAQ )(PS:官方 英文)。 正如Kubernetes API裏面定義的這些服務(詳見the services doc)(PS:官方 英文)也能夠在各類終端中以輪詢的方式作一些簡單的TCP和UDP傳輸。
服務端點目前是經過DNS或者環境變量( Docker-links-compatible 和 Kubernetes{FOO}_SERVICE_HOST 及 {FOO}_SERVICE_PORT 變量都支持)。這些變量由服務代理所管理的端口來解析。 elasticsearch
Kubernetes控制面板能夠分爲多個部分。目前它們都運行在一個master 節點,然而爲了達到高可用性,這須要改變。不一樣部分一塊兒協做提供一個統一的關於集羣的視圖。 ide
全部master的持續狀態都存在etcd的一個實例中。這能夠很好地存儲配置數據。由於有watch(觀察者)的支持,各部件協調中的改變能夠很快被察覺。 工具
API服務提供Kubernetes API (PS:官方 英文)的服務。這個服務試圖經過把全部或者大部分的業務邏輯放到不兩隻的部件中從而使其具備CRUD特性。它主要處理REST操做,在etcd中驗證更新這些對象(並最終存儲)。 插件
調度器把未調度的pod經過binding api綁定到節點上。調度器是可插拔的,而且咱們期待支持多集羣的調度,將來甚至但願能夠支持用戶自定義的調度器。 命令行
全部其它的集羣級別的功能目前都是由控制管理器所負責。例如,端點對象是被端點控制器來建立和更新。這些最終能夠被分隔成不一樣的部件來讓它們獨自的可插拔。
replicationcontroller(PS:官方 英文)是一種創建於簡單的 pod API之上的一種機制。一旦實現,咱們最終計劃把這變成一種通用的插件機制。 設計