架構
主從分布式架構,master/node
- 服務分組,小集群,多集群
- 服務分組,大集群,單集群
元件
kubernetes master:
集群控制節點,負責整個集群的管理和控制,基本上kubernetes所有的控制命令都是發給它,它來負責具體的執行過程,我們後面所有執行的命令基本都是在master節點上執行的;
包含如下元件:
1.kubernetes api server
作為kubernetes系統的入口,其封裝了核心物件的增刪改查操作,以restful api介面方式提供給外部客戶和內部元件呼叫。維護的rest物件持久化到etcd中儲存。
2.kubernetes scheduler
為新建立的pod進行節點(node)選擇(即分配機器),負責集群的資源排程。元件抽離,可以方便替換成其他排程器。
3.kubernetes controller
負責執行各種控制器,目前已經提供了很多控制器來保證kubernetes的正常執行。
- replication controller
管理維護replication controller,關聯replication controller和pod,保證replication controller定義的副本數量與實際執行pod數量一致。
- node controller
管理維護node,定期檢查node的健康狀態,標識出(失效|未失效)的node節點。
- namespace controller
管理維護namespace,定期清理無效的namespace,包括namesapce下的api物件,比如pod、service等。
- service controller
管理維護service,提供負載以及服務**。
- endpoints controller
管理維護endpoints,關聯service和pod,建立endpoints為service的後端,當pod發生變化時,實時更新endpoints。
- service account controller
管理維護service account,為每個namespace建立預設的service account,同時為service account建立service account secret。
- persistent volume controller
管理維護persistent volume和persistent volume claim,為新的persistent volume claim分配persistent volume進行繫結,為釋放的persistent volume執行清理**。
- daemon set controller
管理維護daemon set,負責建立daemon pod,保證指定的node上正常的執行daemon pod。
- deployment controller
管理維護deployment,關聯deployment和replication controller,保證執行指定數量的pod。當deployment更新時,控制實現replication controller和 pod的更新。
- job controller
管理維護job,為jod建立一次性任務pod,保證完成job指定完成的任務數目
- pod autoscaler controller
實現pod的自動伸縮,定時獲取監控資料,進行策略匹配,當滿足條件時執行pod的伸縮動作。
kubernetes node:
除了master,kubernetes集群中的其他機器被稱為node節點,node節點才是kubernetes集群中的工作負載節點,每個node都會被master分配一些工作負載(docker容器),當某個node宕機,其上的工作負載會被master自動轉移到其他節點上去;
包含如下元件:
1.kubelet
負責管控容器,kubelet會從kubernetes api server接收pod的建立請求,啟動和停止容器,監控容器執行狀態並匯報給kubernetes api server。
2.kubernetes proxy
負責為pod建立**服務,kubernetes proxy會從kubernetes api server獲取所有的service資訊,並根據service的資訊建立**服務,實現service到pod的請求路由和**,從而實現kubernetes層級的虛擬**網路。
3.docker engine(docker),docker引擎,負責本機的容器建立和管理工作;
k8s架構和相關元件介紹
kubernetes集群的示意圖及其所有元件的關係。api伺服器是kubernetes控制平面的元件,它公開了kubernetes api。api伺服器是kubernetes控制平面的前端。kubernetes api伺服器的主要實現是kube apiserver。kube apiserver旨在水...
k8s元件介紹
master 管理節點 api server 供kubernetes api介面,主要處理 rest操作以及更新etcd中的物件。所有資源增刪改查的唯一入口。scheduler 繫結pod到node上,資源排程。controller manager 所有其他群集級別的功能,目前由控制器manager...
k8s核心元件
k8s的設計理念類似於linux的分層架構。1.master 核心控制 是老大 它主要負責排程,決定服務在 執行,master執行linux系統,可以是物理機或虛擬機器,master是k8s cluster的大腦,執行著的守護程序服務包括 kube apiserver,kube scheduler,...