K8S各個元件介紹

2021-10-12 12:55:53 字數 2180 閱讀 8371

k8s集群架構:

乙個k8s集群是由兩大部分組成:

master節點和node節點

一.master節點主要包括api server、scheduler、controller manager、etcd幾大元件

1.api server(提供其他模組之間的資料互動和通訊的樞紐(其他模組通過api server查詢或修改資料,只有api server才直接和etcd進行互動)

kubernetes 集群中,api server 扮演著通訊樞紐的位置。api server 不僅負責和 etcd 互動(其他元件不會直接操作 etcd,只有 api server 這麼做),並切對外提供統一的api呼叫入口, 所有的互動都是以 api server 為核心的。api server 提供了以下的功能:

整個集群管理的 api 介面:所有對集群進行的查詢和管理都要通過 api 來進行。集群內部的元件(如kubelet)也是通過apiserver更新和同步資料到etcd中。

集群內部各個模組之間通訊的樞紐:所有模組之前並不會之間互相呼叫,而是通過和 api server 打交道來完成自己那部分的工作。

集群安全控制:api server 提供的驗證和授權保證了整個集群的安全。

資料中心樞紐: api server 負責和 etcd 互動存放集群用到的執行資料。

2.scheduler(負責對集群內部的資源進行排程,相當於「排程室」。)

scheduler負責節點資源管理,接收來自kube-apiserver建立pods的任務,收到任務後它會檢索出所有符合該pod要求的node節點(通過預選策略和優選策略),開始執行pod排程邏輯。排程成功後將pod繫結到目標節點上。

3.controller manager

controller-manager 作為 k8s 集群的管理控制中心,負責集群內 node、namespace、service、token、replication 等資源物件的管理,使集群內的資源物件維持在預期的工作狀態。

每乙個 controller 通過 api-server 提供的 restful 介面實時監控集群內每個資源物件的狀態,當發生故障,導致資源物件的工作狀態發生變化,就進行干預,嘗試將資源物件從當前狀態恢復為預期的工作狀態,常見的 controller 有 namespace controller、node controller、service controller、serviceaccount controller、token controller、resourcequote controller、replication controller等。

4.etcd

etcd在kubernetes集群是用來存放資料並通知變動的。

kubernetes中沒有用到資料庫,它把關鍵資料都存放在etcd中,這使kubernetes的整體結構變得非常簡單。在kubernetes中,資料是隨時發生變化的,比如說使用者提交了新任務、增加了新的node、node宕機了、容器死掉了等等,都會觸發狀態資料的變更。狀態資料變更之後呢,master上的kube-scheduler和kube-controller-manager,就會重新安排工作,它們的工作安排結果也是資料。這些變化,都需要及時地通知給每乙個元件。etcd有乙個特別好用的特性,可以呼叫它的api監聽其中的資料,一旦資料發生變化了,就會收到通知。有了這個特性之後,kubernetes中的每個元件只需要監聽etcd中資料,就可以知道自己應該做什麼。kube-scheduler和kube-controller-manager呢,也只需要把最新的工作安排寫入到etcd中就可以了,不用自己費心去逐個通知了

二.node節點主要包括kubelet、kube-proxy模組和pod物件

1.pod

pod是kubernetes最基本的操作單元。乙個pod代表著集群中執行的乙個程序,它內部封裝了乙個或多個緊密相關的容器。

上面說了那麼多,可以簡單總結為以下幾條

1,etcd儲存了整個集群的狀態;

2,apiserver提供了資源操作的唯一入口,並提供認證、授權、訪問控制、api註冊和發現等機制;

3,controller manager負責維護集群的狀態,比如故障檢測、自動擴充套件、滾動更新等;

4,scheduler負責資源的排程,按照預定的排程策略將pod排程到相應的機器上;

5,kubelet負責維護容器的生命週期,同時也負責volume(cvi)和網路(cni)的管理;

6,kube-proxy負責為service提供cluster內部的服務發現和負載均衡;

k8s元件介紹

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

k8s 元件介紹 kube schedule

kubernetes scheduler 基本原理 kubernetes scheduler 作為乙個單獨的程序部署在 master 節點上,它會 watch kube apiserver 程序去發現 podspec.nodename 為空的 pod,然後根據指定的演算法將 pod 排程到合適的 n...

什麼是k8s,了解k8s各個元件的功能

什麼是kubernetes?kubernetes k8s 是自動化容器操作的開源平台,這些操作包括部署,排程和節點集群間擴充套件。如果你曾經用過docker容器技術部署容器,那麼可以將docker看成kubernetes內部使用的低級別元件。kubernetes不僅僅支援docker,還支援rock...