彩色版node
master節點運行着集羣管理相關的一組進程:docker
etcdshell
kube-apiserverapi
kube-controller-manager安全
scheduler網絡
這些進程實現了整個集羣的資源管理、Pod調度、彈性伸縮、安全控制、系統監控、糾錯等管理功能。架構
節點
)以前的版本叫作Minion,能夠是一臺物理主機,也能夠是一臺虛擬機。負載均衡
每一個Node上運行用於啓動和管理Pod的服務Kubeletsocket
運行Kubelet、kube-proxy、docker daemon等服務進程spa
相關命令
kubectl get node
NAME LABELS STATUS AGE xxx kubernetes.io/hostname=xxxx Ready 3h 127.0.0.1 kubernetes.io/hostname=127.0.0.1 NotReady 3h
kubectl describe node xxx
最小調度單元、服務隔離
)一個Pod能夠被一個容器化的環境看作是應用層的邏輯宿主機(Logical Host),一般一個Node中能夠運行幾百個Pod,每一個Pod中有多個容器應用,同一個Pod中的多個容器應用一般是緊密耦合的(至關於多個業務容器組成的一個邏輯虛擬機
)。
每一個Pod中有一個特殊的Pause容器,其餘的成爲業務容器,這些業務容器共享Pause容器的網絡棧以及Volume掛載卷,於是他們之間的通訊及數據交互更爲高效。
同一個pod中的業務容器共享以下資源:
PID命名空間(不一樣應用程序能夠看到其餘應用程序的PID
)
網絡命名空間(pod中多個容器能夠訪問同一個IP和端口範圍
)
IPC命名空間(可以使用SystemV IPC或者POSIX消息隊列進行通訊
)
UTS命名空間(共享同一個主機名
)
Volumes(訪問定義在pod級別的存儲卷
)
管理一組Pod
)kubernetes經過RC中定義的Label篩選出對應的Pod實例並實時監控其狀態和數量,若是實例數量少於定義的副本數量,則會根據RC中定義的Pod模板來建立一個新的Pod,而後Scheduler將此Pod調度到合適的Node上啓動運行,直到Pod實例數量達到預約目標。這個過程徹底是自動化的。
確保用戶指望的Pod數量(建立或銷燬Pod)
在線Pod數量調整
一組提供相同服務的pod的對外訪問接口
)具備以下特徵:
擁有一個惟一指定的名字
擁有一個虛擬IP和端口號
可以提供某種遠程服務能力
被映射到提供這種服務能力的一組容器上
service的服務進程目前都基於socket通訊方式對外提供服務。
kubernetes內置了透明的負載均衡以及故障恢復的機制。
標籤
)解決service與pod之間的關聯問題。kubernetes給每一個pod貼上一個標籤,而後給service定義定義標籤選擇器。
將Pod調度到Node上
)將Pod調度到合適的Node上啓動運行
容器共享存儲卷
)pod中可以被多個容器訪問的共享目錄,與pod同生命週期,但與容器的生命週期無關,當容器終止或重啓時,volume中的數據不會丟失。
命名空間
)使用namespace來組織kubernetes的各類對象,能夠實現用戶的分組(多租戶),對不一樣的租戶還能夠進行單獨的資源設置和管理,是的整個集羣的資源配置很是靈活。