k8s元件核心流程介紹

2021-10-09 09:10:46 字數 2029 閱讀 9314

master: kube-apiserver、kube-controller-manager、kube-scheduler

node : kubelet、proxy

1、基礎知識

api version

api groups

目前,有幾個api groups在使用:

包括:pod、replicationcontroller、endpoints、service、configfmap、secret、persistentvolumeclaim、volume、event、limitrange、

podtemplate、binding、componentstatus、namespace、node、persistentvolume、resourcequota、serviceaccount

可以看出, 該restful api的組織形式是:

apiapi版本

namespace

所屬namespace

資源種類

鎖清秋資源名稱

apiv1

namespace

default

pods

test-pod

apigroup

version

namespace

所屬namespace

資源種類

鎖清秋資源名稱

apis

v1namespace

default

pods

test-pod

2、核心流程

主要有以下三類通訊互動的場景:

kubelet與api server互動

每個node節點上的kubelet定期就會呼叫api server的rest介面報告自身狀態,api server接收這些資訊後,將節點狀態資訊更新到etcd中。kubelet也通過api server的watch介面監聽pod資訊,如果監聽到新的pod副本被排程繫結到本節點,則執行pod對應的容器的建立和啟動邏輯;如果監聽到pod物件被刪除,則刪除本節點上的相應的pod容器;如果監聽到修改pod資訊,則kubelet監聽到變化後,會相應的修改本節點的pod容器。

kube-controller-manager與api server互動

kube-controller-manager中的node controller模組通過api server提供的watch介面,實時監控node的資訊,並做相應處理。

kube-scheduler與api server互動

scheduler通過api server的watch介面監聽到新建pod副本的資訊後,它會檢索所有符合該pod要求的node列表,開始執行pod排程邏輯。排程成功後將pod繫結到目標節點上。

為了緩解各模組對api server的訪問壓力,各功能模組都採用快取機制來快取資料,各功能模組定時從api server獲取指定的資源物件資訊(list/watch方法),然後將資訊儲存到本地快取,功能模組在某些情況下不直接訪問api server,而是通過訪問快取資料來間接訪問api server。

kubectl提交建立pod命令,api響應命令,通過一系列認證授權,把pod資料儲存到etcd,建立deployment資源並初始化.

controller通過list-watch機制,監測發現新的deployment,將該資源加入到內部工作佇列,發現該資源沒有關聯的pod和replicaset,啟用deployment controller建立replicaset資源,再啟用replicaset controller建立pod.

所有controller正常後.將deployment,replicaset,pod資源更新儲存到etcd.

scheduler通過list-watch機制,監測發現新的pod,經過主機過濾主機打分規則,將pod繫結(binding)到合適的主機.

將繫結結果儲存到etcd.

kubelet每隔 20s(可以自定義)向kube-apiserver通過nodename 獲取自身node上所要執行的pod清單.通過與自己的內部快取進行比較,新增加pod.

啟動pod啟動容器.

把本節點的容器資訊pod資訊同步到etcd.

k8s核心元件

k8s的設計理念類似於linux的分層架構。1.master 核心控制 是老大 它主要負責排程,決定服務在 執行,master執行linux系統,可以是物理機或虛擬機器,master是k8s cluster的大腦,執行著的守護程序服務包括 kube apiserver,kube scheduler,...

k8s元件介紹

master 管理節點 api server 供kubernetes api介面,主要處理 rest操作以及更新etcd中的物件。所有資源增刪改查的唯一入口。scheduler 繫結pod到node上,資源排程。controller manager 所有其他群集級別的功能,目前由控制器manager...

K8S各個元件介紹

k8s集群架構 乙個k8s集群是由兩大部分組成 master節點和node節點 一.master節點主要包括api server scheduler controller manager etcd幾大元件 1.api server 提供其他模組之間的資料互動和通訊的樞紐 其他模組通過api serv...