k8s架構和元件

2021-08-27 18:05:44 字數 2495 閱讀 4451

架構

主從分布式架構,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,...