
Kubernetes master核心元件介紹
Master元件提供叢集的管理控制中心。通常在一台VM/機器上啟動所有Master元件,并且不會在此VM/機器上運作使用者容器。
kube-apiserver 用于暴露Kubernetes API。任何的資源請求/調用操作都是通過kube-apiserver提供的接口進行;
ETCD 是Kubernetes提供預設的存儲系統,儲存所有叢集資料,使用時需要為etcd資料提供備份計劃;
kube-controller-manager 運作管理控制器,它們是叢集中處理正常任務的背景線程;一個資源對應一個控制器。這些控制器包括:
節點 (Node)控制器
副本(Replication)控制器:負責維護系統中每個副本中的pod。
端點(Endpoints)控制器:填充Endpoints對象(即連接配接Services&Pods)。
Service Account和Token控制器:為新的Namespaces建立預設帳戶通路API Token。
kube-scheduler 節點排程,監視新建立沒有配置設定到Node的Pod,為Pod選擇一個Node;
Kubelet 負責維護容器的生命周期,同時也負責Volume(CVI)和網絡(CNI)的管理;
kube-proxy 通過在主機上維護網絡規則并執行連接配接轉發來實作service(Iptables/ipvs);
Container Runtime 負責鏡像管理以及Pod和容器的真正運作(Docker/Rkt/Pouch/Kata)
Kubernetes node 核心元件介紹
節點元件運作在Node,提供Kubernetes運作時環境,以及維護Pod。
kubelet負責維護容器的生命周期,同時也負責Volume(CVI)和網絡(CNI)的管理;
kube-proxy通過在主機上維護網絡規則并執行連接配接轉發來實作service(Iptables/ipvs);
Container Runtime負責鏡像管理以及Pod和容器的真正運作(Docker/Rkt/Pouch/Kata)
除了核心元件,還有一些推薦的Add-ons:
coredns/kube-dns負責為整個叢集提供DNS服務,kube-dns最新版本被棄用了。
Ingress對外提供七層服務的通路
Heapster/metries-server提供資源監控,Heapster最新版本被棄用了。
Dashboard提供GUI
Federation提供跨可用區的叢集
Fluentd-elasticsearch提供叢集日志采集、存儲與查詢