網站首頁 編程語言 正文
架構組成
我們可以看一下這兩張圖,所表示的都是關于 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
相關推薦
- 2022-03-18 c語言的指針數組詳解(c語言指針與數組)
- 2022-06-16 zap接收gin框架默認的日志并配置日志歸檔示例_Golang
- 2023-05-15 golang判斷結構體為空的問題_Golang
- 2022-08-03 C++中TinyXML讀取xml文件用法詳解_C 語言
- 2022-05-11 linq中的分組操作符_實用技巧
- 2022-04-18 python?如何使用requests下載文件_python
- 2023-04-18 Python中selenium獲取token的方法_python
- 2022-04-16 統計C語言二叉樹中葉子結點個數_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支