Kubernetes關(guān)鍵組件與結(jié)構(gòu)組成介紹
架構(gòu)組成
我們可以看一下這兩張圖,所表示的都是關(guān)于 Kubernetes 集群的架構(gòu)。
一個 kubernetes 集群是由一組被稱為節(jié)點(Node)的機器或虛擬機組成,集群由 master、worker 節(jié)點組成,每個機器至少具有一個 worker 節(jié)點。
Master
在前面兩個圖中,可以看到 Master 是由一組稱為控制平面組件組成的,我們可以打開 /etc/kubernetes/manifests/
目錄,里面是 k8s 默認的控制平面組件。
. ├── etcd.yaml ├── kube-apiserver.yaml ├── kube-controller-manager.yaml └── kube-scheduler.yaml
對于集群來說, etcd、apiserver、schedluer 是必不可少的,接下來了解一下這幾個組件的作業(yè)和相關(guān)資料。
kube-apiserver
kube-apiserver 是 k8s 主要進程之一,apiserver 組件公開了 Kubernetes API ,apiserver 是 Kubernetes 控制面的前端。kubectl 具有控制集群的很強大的功能,正是 apiserver 提供了接口服務(wù),kubectl 解析用戶輸入的指令后,向 apiserver 發(fā)起 HTTP 請求,再將結(jié)果反饋給用戶。
其暴露的 endiont 端口是 6443,我們通過 kubeadm join ip:6443 ...
將節(jié)點加入集群,正是通過 apiserver 處理的。
etcd
etcd 是兼具一致性和高可用性的鍵值數(shù)據(jù)庫,作為保存 Kubernetes 所有集群數(shù)據(jù)的后臺數(shù)據(jù)庫。kube-apiserver 的所有操作結(jié)果都會存儲到 etcd 數(shù)據(jù)庫中,etcd 主要存儲 k8s 的狀態(tài)、網(wǎng)絡(luò)配置以及其它持久化數(shù)據(jù),etcd 是使用 B+ 樹實現(xiàn)的。
kube-scheduler
scheduler 負責監(jiān)視新創(chuàng)建的 pod,并把 pod 分配到節(jié)點上。
kube-controller-manager
kube-controller-manager 中包含了多個控制器,它們都被編譯到一個二進制文件中,但是啟動后會產(chǎn)生不同的進程。這些控制器有:
節(jié)點控制器(Node Controller)
負責在節(jié)點出現(xiàn)故障時進行通知和響應
任務(wù)控制器(Job controller)
監(jiān)測代表一次性任務(wù)的 Job 對象,然后創(chuàng)建 Pods 來運行這些任務(wù)直至完成
端點控制器(Endpoints Controller)
填充端點(Endpoints)對象(即加入 Service 與 Pod)
服務(wù)帳戶和令牌控制器(Service Account & Token Controllers)
為新的命名空間創(chuàng)建默認帳戶和 API 訪問令牌
Worker
工作節(jié)點是真正干活的節(jié)點,每個工作節(jié)點上都運行著 kubelet、kube-proxy 兩個 k8s 組件以及容器引擎。kube-apiserver 這些稱為 控制平面組件,而 kubelet、kube-proxy 則稱為 節(jié)點組件。
kubelet 與所有安裝在節(jié)點上的底層容器引擎進行交互,它確保所需的容器都運行在 pod 中,如果我們直接使用 docker run
創(chuàng)建容器,kubelet 不會管理非 kubernetes 創(chuàng)建的容器。
kube-proxy 負責管理容器的網(wǎng)絡(luò)連接,是集群中每個節(jié)點上運行的網(wǎng)絡(luò)代理,也是我們之前學習到的 Service 服務(wù)的一部分。
到此這篇關(guān)于Kubernetes關(guān)鍵組件與結(jié)構(gòu)組成的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
CentOS 出現(xiàn)no space left on device錯誤解決辦法
這篇文章主要介紹了CentOS 出現(xiàn)no space left on device錯誤解決辦法的相關(guān)資料,需要的朋友可以參考下2017-04-04Kubernetes(K8S)入門基礎(chǔ)內(nèi)容介紹
這篇文章介紹了Kubernetes(K8S)的入門基礎(chǔ)內(nèi)容,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-03-03Kubernetes kubectl中Pod創(chuàng)建流程源碼解析
這篇文章主要為大家介紹了Kubernetes kubectl中Pod創(chuàng)建流程源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11Kubernetes scheduler啟動監(jiān)控資源變化解析
這篇文章主要為大家介紹了Kubernetes scheduler啟動監(jiān)控資源變化解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11Kubernetes Visitor設(shè)計模式及發(fā)送pod創(chuàng)建請求解析
這篇文章主要為大家介紹了Kubernetes Visitor設(shè)計模式及發(fā)送pod創(chuàng)建請求解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11Kubernetes關(guān)鍵組件與結(jié)構(gòu)組成介紹
這篇文章介紹了Kubernetes的關(guān)鍵組件與結(jié)構(gòu)組成,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-03-03Kubernetes?controller?manager運行機制源碼解析
這篇文章主要為大家介紹了Kubernetes?controller?manager運行機制源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11