Kubernetes 組件
Kubernetes 集群組件圖

控制平面組件(Control Plane Components)
控制平面組件會為集群做出全域決策,比如資源的調度,以及檢測和回應集群事件,
控制平面組件可以在集群中的任何節點上運行,在實際使用中,通常會在同一個計算機上啟動所有控制平面組件,并且不會在此計算機上運行用戶容器,
kube-apiserver
apiserver 是 Kubernetes 控制平面的組件,該組件負責公開了 Kubernetes API,負責處理接受請求的作業,apiserver 是 Kubernetes 控制平面的前端,
Kubernetes apiserver 的主要實作是 kube-apiserver,kube-apiserver 設計上考慮了水平擴縮,也就是說,它可通過部署多個實體來進行擴縮,你可以運行 kube-apiserver 的多個實體,并在這些實體之間平衡流量,
etcd
etcd 是兼顧一致性與高可用性的鍵值資料庫,可以作為保存 Kubernetes 所有集群資料的后臺資料庫,
kube-scheduler
kube-scheduler 是控制平面的組件,負責監視新創建的、未指定運行節點(node)的 Pods,并選擇節點來讓 Pod 在上面運行,
調度決策考慮的因素包括單個 Pod 及 Pods 集合的資源需求、軟硬體及策略約束、親和性及反親和性規范、資料位置、作業負載間的干擾及最后時限,
kube-controller-manager
kube-controller-manager 是控制平面的組件,負責運行控制器行程,
控制器包括:
- 節點控制器(Node Controller):負責在節點出現故障時進行通知和回應
- 任務控制器(Job Controller):監測代表一次性任務的 Job 物件,然后創建 Pods 來運行這些任務直至完成
- 端點控制器(Endpoints Controller):填充端點(Endpoints)物件(即加入 Service 與 Pod)
- 服務帳戶和令牌控制器(Service Account & Token Controllers):為新的命名空間創建默認帳戶和 API 訪問令牌
cloud-controller-manager
cloud-controller-manager 是指嵌入特定云(例如亞馬遜 aws,微軟 azure 等)的控制邏輯之控制平面組件,cloud-controller-manager 允許你將你的集群連接到云提供商的 API 之上,并將與該云平臺互動的組件同與你的集群互動的組件分離開來,
下面的控制器都包含對云平臺驅動的依賴:
- 節點控制器(Node Controller):用于在節點終止回應后檢查云提供商以確定節點是否已被洗掉
- 路由控制器(Route Controller):用于在底層云基礎架構中設定路由
- 服務控制器(Service Controller):用于創建、更新和洗掉云提供商負載均衡器
Node 組件
Node 組件會在每個節點上運行,負責維護運行的 Pod 并提供 Kubernetes 運行環境,
kubelet
kubelet 會在集群中每個節點(node)上運行,它保證容器(containers)都運行在 Pod 中,
kubelet 接收一組通過各類機制提供給它的 PodSpecs,確保這些 PodSpecs 中描述的容器處于運行狀態且健康,kubelet 不會管理不是由 Kubernetes 創建的容器,
kube-proxy
kube-proxy 是集群中每個節點(node)所上運行的網路代理,實作 Kubernetes 服務(Service)概念的一部分,
kube-proxy 維護節點上的一些網路規則,這些網路規則會允許從集群內部或外部的網路會話與 Pod 進行網路通信,
容器運行時(Container Runtime)
容器運行環境是負責運行容器的軟體,
Kubernetes 支持許多容器運行環境,例如 Docker、containerd、CRI-O 以及 Kubernetes CRI (容器運行環境介面) 的其他任何實作,
插件(Addons)
插件使用 Kubernetes 資源(DaemonSet、 Deployment 等)實作集群功能,因為這些插件提供集群級別的功能,插件中命名空間域的資源屬于 kube-system 命名空間,
幾種常用插件:
- DNS:集群 DNS 是一個 DNS 服務器,和環境中的其他 DNS 服務器一起作業,它為 Kubernetes 服務提供 DNS 記錄,
- Web 界面(儀表盤):Dashboard 是 Kubernetes 集群的通用的、基于 Web 的用戶界面,它使用戶可以管理集群中運行的應用程式以及集群本身,并進行故障排除,
- 容器資源監控:將關于容器的一些常見的時間序列度量值保存到一個集中的資料庫中,并提供瀏覽這些資料的界面,
- 集群層面日志:負責將容器的日志資料保存到一個集中的日志存盤中,這種集中日志存盤提供搜索和瀏覽介面,
參考資料
- kubernetes.io 官方檔案:Kubernetes 組件
思維導圖

B站學習
從零開始學習k8s:k8s組件

抖音學習

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/502143.html
標籤:其他
上一篇:回歸與分類
