本章主要讓咱們初步瞭解到Kubernetes的主要組件有哪些,以及其協做關係是怎麼樣的。前端
包括kube-apiserver、kube-scheduler、kube-controller-manager和etcd四個組件。node
kube-apiserver: 是一個將Kubernetes控制平面中的API暴露出來的API服務,這服務是Kubernetes控制平面的前端。 用戶能夠運行多個kube-apiserver組件的實例,用於平衡實例的請求流量。 kube-scheduler: 用於watch監聽apiserver的資源變更(增刪改查),並調度合適的後端node節點來建立Pod資源。 kube-controller-manager: 每一個控制器都是獨立的二進制進程,包括:Node Controller、Replication Controller、Endpoints Controller和Service Account & Token Controllers。 etcd: 高可用、KV結構的kubernetes的後端數據存儲組件。 備份方案:https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster 官方文檔:https://etcd.io/docs/v3.4.0/
包括kubelet、kube-proxy和Container Runtime三個組件。
kubelet: 運行在集羣每一個節點的客戶端,須要確保相關容器運行在pod中; 經過PodSpecs標籤,描述容器的運行狀態; 最後,kubelet無論理,沒有經過kubernetes建立的容器。 kube-proxy: 是一個運行在集羣每一個節點的網絡代理組件。 Container Runtime: 支持運行容器底層環境的軟件; 支持: Docker, containerd, cri-o, rktlet and any implementation of the Kubernetes CRI (Container Runtime Interface)。
使用Kubernetes resources (DaemonSet, Deployment, etc)增長集羣功能; 其中附加組件的namespace屬於kube-system。 可用Addons文檔:https://kubernetes.io/docs/concepts/cluster-administration/addons/
DNS: 將Service資源的A記錄,實時且自動的添加進來。 Web UI (Dashboard)、Container Resource Monitoring和Cluster-level Logging
2.流程概述: git
Master: github
用戶經過(API、WebUI、CLI)向APIserver發送請求,Scheduler組件watch APIserver的資源變更,同時從Node中選取最合適的Node節點開始調度,並把結果保存到Etcd中。
Node:docker
kubelet也會watch APIserver的資源變更,並在符合的Node上,會經過kuberlet調用相關的docker引擎進行後續構建操做。
本文原址位於個人Github,我會陸續將全部專題更新過來,其中包括docker、k8s、ceph、istio和prometheus,旨在分享雲原生中大而全的技術知識點和實操過程,若是對你有用,請follow、star個人github,這也是我更新、分享下去的動力,謝謝~api