溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

淺談kubernetes:master節(jié)點和node節(jié)點

發(fā)布時間:2020-08-06 21:33:34 來源:網(wǎng)絡(luò) 閱讀:1544 作者:清白之年 欄目:云計算

kubernetes 整個架構(gòu)分為master節(jié)點和node節(jié)點,其中master節(jié)點負責pod的調(diào)度,pod的replication的數(shù)量node,endpoint以及服務(wù)賬戶以及令牌的管理等等;而node節(jié)點主要負責container創(chuàng)建,服務(wù)的代理以及其他相關(guān)應(yīng)用。

Master節(jié)點

Master 組件提供的集群控制。Master 組件對集群做出全局性決策(例如:調(diào)度),以及檢測和響應(yīng)集群事件(副本控制器的replicas字段不滿足時,啟動新的副本)。

Master 組件可以在集群中的任何節(jié)點上運行。然而,為了簡單起見,設(shè)置腳本通常會啟動同一個虛擬機上所有 Master 組件,并且不會在此虛擬機上運行用戶容器(高可用)

Master節(jié)點包括:kube-apiserver,kube-control-manager,kube-schduler,etcd,相關(guān)插件應(yīng)用以及底層云控制器,其中:

1. kube-apiserver

kube-apiserver對外暴露了Kubernetes API。它是的 Kubernetes 前端控制層。它被設(shè)計為水平擴展,即通過部署更多實例來縮放

2. etcd數(shù)據(jù)庫

etcd主要為kubernetes的后端數(shù)據(jù)庫,就與k/v方式存儲,所有的k8s集群數(shù)據(jù)都存放在此處。

3. kube-controller-manager

kube-controller-manager運行控制器,它們是處理集群中常規(guī)任務(wù)的后臺線程。邏輯上,每個控制器是一個單獨的進程,但為了降低復雜性,它們都被編譯成獨立的可執(zhí)行文件,并在單個進程中運行。這些控制器包括:

節(jié)點控制器: 當節(jié)點移除時,負責注意和響應(yīng)。

副本控制器: 負責維護系統(tǒng)中每個副本控制器對象正確數(shù)量的 Pod。

端點控制器: 填充 端點(Endpoints) 對象(即連接 Services & Pods)。

服務(wù)帳戶和令牌控制器: 為新的命名空間創(chuàng)建默認帳戶和 API 訪問令牌
4. 云控制器管理器-(cloud-controller-manager)

cloud-controller-manager是用于與底層云提供商交互的控制器。云控制器管理器可執(zhí)行組件是 Kubernetes v1.6 版本中引入的 Alpha 功能。

cloud-controller-manager僅運行云提供商特定的控制器循環(huán)。您必須在kube-controller-manager 中禁用這些控制器循環(huán),您可以通過在啟動 kube-controller-manager 時將 --cloud-provider 標志設(shè)置為external來禁用控制器循環(huán)。

cloud-controller-manager允許云供應(yīng)商代碼和Kubernetes核心彼此獨立發(fā)展,在以前的版本中,Kubernetes 核心代碼依賴于云提供商特定的功能代碼。在未來的版本中,云供應(yīng)商的特定代碼應(yīng)由云供應(yīng)商自己維護, 并與運行 K8s 的云控制器管理器相關(guān)聯(lián)。具有云提供商依賴關(guān)系:

節(jié)點控制器: 用于檢查云提供商以確定節(jié)點是否在云中停止響應(yīng)后被刪除

路由控制器: 用于在底層云基礎(chǔ)架構(gòu)中設(shè)置路由

服務(wù)控制器: 用于創(chuàng)建,更新和刪除云提供商負載平衡器

數(shù)據(jù)卷控制器: 用于創(chuàng)建,附加和裝載卷,并與云提供商進行交互以協(xié)調(diào)卷
5. kube-scheduler

kube-scheduler監(jiān)視沒有分配節(jié)點的新創(chuàng)建的 Pod,選擇一個節(jié)點供他們運行,即pod的調(diào)度

6. 插件(addons)

插件是實現(xiàn)集群功能的 Pod 和 Service。 Pods 可以通過 Deployments,ReplicationControllers 管理。插件對象本身是受命名空間限制的,被創(chuàng)建于 kube-system 命名空間。Addon 管理器用于創(chuàng)建和維護附加資源。

主要包括以下插件:

  1. DNS域名注冊服務(wù)

為 Kubernetes 服務(wù)提供DNS記錄,Kubernetes 啟動的容器自動將 DNS 服務(wù)器包含在 DNS 搜索中。

  1. dashboard用戶界面

為kubernetes集群提供一個狀態(tài)概覽的UI界面。

3.容器監(jiān)控

容器資源監(jiān)控將關(guān)于容器的一些常見的時間序列度量值保存到一個集中的數(shù)據(jù)庫中,并提供用于瀏覽這些數(shù)據(jù)的界面

4.日志采集

負責將容器的日志數(shù)據(jù)保存到一個集中的日志存儲中,該存儲能夠提供搜索和瀏覽接口。

node節(jié)點

node節(jié)點組件在每個節(jié)點上運行,維護運行的 Pod 并提供 Kubernetes 運行時環(huán)境。其中包括以下組件:

1. kubelet

kubelet是主要的節(jié)點代理,它監(jiān)測已分配給其節(jié)點的 Pod(通過 apiserver 或通過本地配置文件),提供如下功能:掛載 Pod 所需要的數(shù)據(jù)卷(Volume)。

1.下載 Pod 的 secrets。

2.通過 Docker 運行(或通過 rkt)運行 Pod 的容器。

3.周期性的對容器生命周期進行探測。

4.通過創(chuàng)建鏡像Pod(Mirror Pod) 將 Pod 的狀態(tài)報告回系統(tǒng)的其余部分。

5.將節(jié)點的狀態(tài)報告回系統(tǒng)的其余部分
2. kube-proxy

kube-proxy通過維護主機上的網(wǎng)絡(luò)規(guī)則并執(zhí)行連接轉(zhuǎn)發(fā),實現(xiàn)了Kubernetes服務(wù)代理

3. container runtime interface

運行容器的cri,比如:container 或者rkt

4. supervisord

supervisord 是一個輕量級的進程監(jiān)控系統(tǒng),可以用來保證 kubelet 和 docker 運行。

5. Fluentd

fluentd 是一個守護進程,它有助于提供集群層面日志 集群層面的日志

全局組件

全局組件主要指的是CNI,即容器網(wǎng)絡(luò),它貫穿整個kubernetes集群,不管master節(jié)點應(yīng)用還是node節(jié)點應(yīng)用都必須同處于一個網(wǎng)絡(luò),從而保證整個服務(wù)正常訪問!

以上就是整個k8s節(jié)點相關(guān)的功能介紹,具體介紹請參考kubernetes官方文檔!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI