Kubernetes Cluster 由 Master 和 Node 組成,節點上運行着若干 Kubernetes 服務。
Master 節點
Master 是 Kubernetes Cluster 的大腦,運行着如下 Daemon 服務:kube-apiserver、kube-scheduler、kube-controller-manager、etcd 和 Pod 網絡(例如 flannel)。
API Server(kube-apiserver)
API Server 提供 HTTP/HTTPS RESTful API,即 Kubernetes API。API Server 是 Kubernetes Cluster 的前端接口,各種客戶端工具(CLI 或 UI)以及 Kubernetes 其他組件可以通過它管理 Cluster 的各種資源。
Scheduler(kube-scheduler)
Scheduler 負責決定將 Pod 放在哪個 Node 上運行。Scheduler 在調度時會充分考慮 Cluster 的拓撲結構,當前各個節點的負載,以及應用對高可用、性能、數據親和性的需求。
Controller Manager(kube-controller-manager)
Controller Manager 負責管理 Cluster 各種資源,保證資源處於預期的狀態。Controller Manager 由多種 controller 組成,包括 replication controller、endpoints controller、namespace controller、serviceaccounts controller 等。
不同的 controller 管理不同的資源。例如 replication controller 管理 Deployment、StatefulSet、DaemonSet 的生命周期,namespace controller 管理 Namespace 資源。
etcd
etcd 負責保存 Kubernetes Cluster 的配置信息和各種資源的狀態信息。當數據發生變化時,etcd 會快速地通知 Kubernetes 相關組件。
Pod 網絡
Pod 要能夠相互通信,Kubernetes Cluster 必須部署 Pod 網絡,flannel 是其中一個可選方案。
以上是 Master 上運行的組件,下一節我們討論 Node。
書籍:
1.《每天5分鍾玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《每天5分鍾玩轉OpenStack》
https://item.jd.com/12086376.html