kubernetes中master節點和node節點的組件

kubernetes中master中比較重要的組件

1)apiserver

k8s的重要組件之一,做爲整個k8s集羣的大腦,負責對外提供kubernetes的API服務,Master組件都經過調用APIserver提供的接口來實現各自的功能,生產環境通常也會對apiserver作高可用,多master架構。好比,deplotment Controller就經過apiserver來監控其管理的各個pod節點。node

2)scheduler

監聽apiserver的新建pod副本信息,並經過調度算法計算一個合適node節點進行,而後將pod信息綁定到目標Node節點上,並把信息寫入到etcd鍵值數據庫中。綁定之後,Node上的kubelet就會接管pod接下來的聲明週期管理。nginx

3)contronller-manager

維護整個集羣的狀態,故障檢測,自動擴展,滾動更新等等。每一個集羣都有對應的controller,這些controller經過apiserve監控節點資源狀態,而這些控制器就是經過controller-manager進行管理。web

4)etcd

k8s的重要組件,爲kubernetes提供一個高可用鍵值數據庫,保存kubernetes集羣資源中的全部的配置和集羣資源對象的狀態。全部的變動經過apiserver處理完之後存儲在etcd鍵值庫中,生產上通常使用多臺組集羣,通常爲3,5等奇數臺,偶數臺會產生集羣腦裂的問題。
kubernetes中master節點和node節點的組件算法

好比我新建一個Nginx的pod,首先經過kubectl命令或者web界面或者一些其餘的api接口,調用APIserver新建pod,而後scheduler接受到APIserver想新建pod的需求後,就在經過算法計算我後端的那個Node節點比較合適,一旦綁定,把相關信息寫入etcd鍵值庫後,通知Node的kubelet組件,而後kubelet按照要求新建好pod,controller-manager經過pod的控制器進行維護nginx的pod狀態等等docker

kubernetes中node中比較重要的組件

1)kubelet

負責pod的生命週期管理,監視分配給當前節點的pod,同時還與Master節點維護和管理Node上的全部容器,實現集羣管理的基本功能。簡單來講kublet就是集羣中的agent端,負責讓pod的運行資源與指望的狀態一致數據庫

2)kube-proxy

實現service通訊和負載均衡的重要組件,將service的請求轉發的後端節點的pod上。後端

3)docker

pod的運行環境,也能夠是rkt容器,一個pod能夠是一個或者一組容器。api

kubernetes中master節點和node節點的組件

kubernetes中其餘比較重要的組件

1)CNI

一個標準的容器網絡接口,支持k8s,docker等,因爲其實一種標準庫,因此,CNI的規範實現相對來講較爲簡單,支持k8s的各類網絡模型。服務器

2)coreDNS

實現了集羣內部經過服務器名進行訪問的解析。用於服務發現網絡

相關文章
相關標籤/搜索