1. 程式人生 > >Kubernets主要功能介紹、基本物件以及系統架構和元件功能

Kubernets主要功能介紹、基本物件以及系統架構和元件功能

Kubernets主要功能

  • 資料卷:
        Pod中容器之間共享資料,可以使用資料卷;
  • 應用程式件健康檢查:
        容器內服務可能程序堵塞無法處理請求,可以設定監控檢查策略保證應用健壯性;
  • 複製應用程式例項:
        控制器維護者Pod副本數量,保證一個Pod或者一組同類的Pod數量始終可用;
  • 彈性伸縮:
        根據設定的指標(CPU利用率)自然縮放Pod副本數;
  • 服務發現:
        根據環境變數或者DNS服務外掛保證容器中程式發現Pod入口訪問地址;
  • 負載均衡:
        一組Pod副本分配一個私有的叢集IP地址,負載均衡轉發請求到後端容器,在叢集內部其他Pod可通過這個ClusterIP訪問應用;
  • 滾動更新:
        更新服務不可中斷,一次更新一個Pod,而白銀市同事刪除整個服務;
  • 服務編排:
        通過檔案描述部署服務,使得應用程式部署變得更高效;
  • 資源監控:
        Node節點元件整合CAdvisor資源收集工具,可通過Heapster彙總掙個叢集節點資源資料,然後儲存到InfluxDB時序資料庫,在由Grafana展示;
  • 提供認證和授權:
        支援角色訪問控制(RBC)認證授權策略;

基本物件

  • Pod:
         Pod是最小部署單元,一個Pod由一個或多個容器組成,Pod中容器共享儲存和網路,在同一臺Docker主機執行;
  • Service:

        Service是一個服務抽象,定義了Pod邏輯集合和訪問這個Pod集合的策略;
        Service代理Pod集合對外表現為一個訪問入口,分配一個叢集IP地址,來自這個IP的請求將負載均衡抓發後端Pod中的容器;
        Service通過Lable Selector選擇一組Pod提供服務;
  • Volume:
        資料卷,共享Pod中容器使用的資料;
  • NameSpace:
        名稱空間將物件邏輯上分配到不通NameSpace,可以是不同的專案、使用者等區分管理,並設定控制策略,從而實現多組戶;
  • Lable:
        標籤用於區分物件(比如:Lable、Service),鍵值對形式存在,每個物件可以有多個標籤,通過標籤關聯物件;

基於基本物件更高層次抽象

  • ReplicaSet:
        下一代Replication Controller。確保任何給定時間制定的Pod副本數量,並提供宣告式更新等功能;RC與RS衛衣的區別就是lable selector支援不同,RS支援新的基於集合的標籤,RC僅支援基於等式的標籤;
  • Deployment:
        Deployment是一個更高層次的API物件,它管理ReplicaSet和Pod,並提供宣告式更新等功能;官方建議使用Deployment掛曆ReplicaSets,而不是直接使用ReplicaSets,這就意味著可能永遠不需要直接操作ReplicaSet物件;
  • StatefulSet:
        適合永續性應用程式,有唯一的網路表示(IP),持久儲存,有序的部署、擴充套件、刪除和滾動更新;
  • DaemonSet:
        確保所有(或一些)節點運行同一個Pod。當節點加入Kubernets叢集中,Pod會被排程到給節點上執行,當節點從叢集中移除時,DaemonSet的Pod會被刪除。刪除DaemonSet會清理他所有建立的Pod。
  • Job:
        一次性任務,執行完成後Pod銷燬。不再重新啟動新容器。還可以定時執行任務。

系統架構及元件功能

在這裡插入圖片描述

Master元件

  • kube-apiserver:
        Kubernets API是叢集的唯一入口,各元件的協調者,以HTTP API提供介面服務,所有物件資源的增刪改查和監聽操作都交給APIServer處理後再交給Etcd儲存。
  • kube-controller-manager:
        處理叢集中常規後臺任務,一個資源對應一個控制器,而ControllerManager就是負責管理這些控制器的。
  • kube-scheduler:
        根據排程演算法為新建立的Pod選擇一個Node節點。

Node節點

  • kubelet:
        kubelet是Master在Node節點上的Agent,管理本機執行容器的生理週期,比如建立容器、Pod掛載資料卷、下載secret、獲取容器和節點狀態等工作。kubelet將每個pod轉換成一組容器;
  • kube-proxy
        在Node節點上實現Pod網路代理,維護網路規則和四層負載均衡工作。
  • docker:
        執行容器;

第三方服務

  • etcd:
        分散式鍵值儲存系統,用於保持叢集狀態,比如Pod、Service等物件資訊;