日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Kubernetes關鍵組件與結構組成介紹_云和虛擬化

作者:癡者工良 ? 更新時間: 2022-06-02 編程語言

架構組成

我們可以看一下這兩張圖,所表示的都是關于 Kubernetes 集群的架構。

一個 kubernetes 集群是由一組被稱為節點(Node)的機器或虛擬機組成,集群由 master、worker 節點組成,每個機器至少具有一個 worker 節點。

Master

在前面兩個圖中,可以看到 Master 是由一組稱為控制平面組件組成的,我們可以打開?/etc/kubernetes/manifests/?目錄,里面是 k8s 默認的控制平面組件。

.
├── etcd.yaml
├── kube-apiserver.yaml
├── kube-controller-manager.yaml
└── kube-scheduler.yaml

對于集群來說, etcd、apiserver、schedluer 是必不可少的,接下來了解一下這幾個組件的作業和相關資料。

kube-apiserver

kube-apiserver 是 k8s 主要進程之一,apiserver 組件公開了 Kubernetes API ,apiserver 是 Kubernetes 控制面的前端。kubectl 具有控制集群的很強大的功能,正是 apiserver 提供了接口服務,kubectl 解析用戶輸入的指令后,向 apiserver 發起 HTTP 請求,再將結果反饋給用戶。

其暴露的 endiont 端口是 6443,我們通過?kubeadm join ip:6443 ...?將節點加入集群,正是通過 apiserver 處理的。

etcd

etcd 是兼具一致性和高可用性的鍵值數據庫,作為保存 Kubernetes 所有集群數據的后臺數據庫。kube-apiserver 的所有操作結果都會存儲到 etcd 數據庫中,etcd 主要存儲 k8s 的狀態、網絡配置以及其它持久化數據,etcd 是使用 B+ 樹實現的。

kube-scheduler

scheduler 負責監視新創建的 pod,并把 pod 分配到節點上。

kube-controller-manager

kube-controller-manager 中包含了多個控制器,它們都被編譯到一個二進制文件中,但是啟動后會產生不同的進程。這些控制器有:

  • 節點控制器(Node Controller)

    負責在節點出現故障時進行通知和響應

  • 任務控制器(Job controller)

    監測代表一次性任務的 Job 對象,然后創建 Pods 來運行這些任務直至完成

  • 端點控制器(Endpoints Controller)

    填充端點(Endpoints)對象(即加入 Service 與 Pod)

  • 服務帳戶和令牌控制器(Service Account & Token Controllers)

    為新的命名空間創建默認帳戶和 API 訪問令牌

Worker

工作節點是真正干活的節點,每個工作節點上都運行著 kubelet、kube-proxy 兩個 k8s 組件以及容器引擎。kube-apiserver 這些稱為 控制平面組件,而 kubelet、kube-proxy 則稱為 節點組件。

kubelet 與所有安裝在節點上的底層容器引擎進行交互,它確保所需的容器都運行在 pod 中,如果我們直接使用?docker run?創建容器,kubelet 不會管理非 kubernetes 創建的容器。

kube-proxy 負責管理容器的網絡連接,是集群中每個節點上運行的網絡代理,也是我們之前學習到的 Service 服務的一部分。

原文鏈接:https://www.cnblogs.com/whuanle/p/14687965.html

欄目分類
最近更新