kubernetes學習與實踐篇(一)主要概念介紹

什麼是kubernetes後端

Kubernetes是Google開源的容器集羣管理系統,實現基於Docker構建容器,利用Kubernetes能很方面管理多臺Docker主機中的容器。api

 

主要功能網絡

將多臺Docker主機抽象爲一個資源,以集羣方式管理容器,包括任務調度、資源管理、彈性伸縮、滾動升級等功能。負載均衡

使用編排系統(YAML File)快速構建容器集羣,提供負載均衡,解決容器直接關聯及通訊問題。工具

自動管理和修復容器,簡單說,好比建立一個集羣,裏面有十個容器,若是某個容器異常關閉,那麼,會嘗試重啓或從新分配容器,始終保證會有十個容器在運行,反而殺死多餘的。spa

 

kubernetes角色組成命令行

POD:代理

    Pod是kubernetes的最小操做單元,一個Pod能夠由一個或多個容器組成;server

    同一個Pod只能運行在同一個主機上,共享相同的volumes、network、namespace。對象

ReplicationController(RC):

    RC用來管理Pod,一個RC能夠由一個或多個Pod組成,在RC被建立後,系統會根據定義好的副本數來建立Pod數量。

    在運行過程當中,若是Pod數量小於定義的,就會重啓中止的或從新分配Pod,反之則殺死多餘的。固然,也能夠動態伸縮運行的Pods規模或熟悉。

Service:

    Service定義了一個Pod邏輯集合的抽象資源,Pod集合中的容器提供相同的功能。

    集合根據定義的Label和selector完成,當建立一個Service後,會分配一個Cluster IP,這個IP與定義的端口提供這個集合一個統一的訪問接口,而且實現負載均衡。

Label:

    Label是用於區分Pod、Service、RC的key/value鍵值對;

    Pod、Service、RC能夠有多個label,可是每一個label的key只能對應一個;

    主要是將Service的請求經過lable轉發給後端提供服務的Pod集合;

 

kubernetes組件

 

kubectl:        客戶端命令行工具,將接受的命令格式化後發送給kube-apiserver,做爲整個系統的操做入口。

kube-apiserver:    做爲整個系統的控制入口,以REST API服務提供接口。

kube-controller-manager:    用來執行整個系統中的後臺任務,包括節點狀態情況、Pod個數、Pods和Service的關聯等。

kube-scheduler:    負責節點資源管理,接受來自kube-apiserver建立Pods任務,並分配到某個節點。

etcd:          負責節點間的服務發現和配置共享。

kube-proxy:      運行在每一個計算節點上,負責Pod網絡代理。定時從etcd獲取到service信息來作相應的策略。

kubelet:        運行在每一個計算節點上,做爲agent,接受分配該節點的Pods任務及管理容器,週期性獲取容器狀態,反饋給kube-apiserver。

DNS:          一個可選的DNS服務,用於爲每一個Service對象建立DNS記錄,這樣全部的Pod就能夠經過DNS訪問服務了。

相關文章
相關標籤/搜索