Kubectl:k8s是命令行端,用來發送客戶的操作指令
API server:是k8s集羣的前端接口,各種客戶端工具以及k8s的其他組件可以通過它管理k8s集羣的各種資源,他提供了http/https RESTful API即k8s API
Scheduler:負責決定將pod放在那個node節點上運行,在調度時,會充分考慮集羣的拓撲結構,當前各個節點的負載情況,以及應用對高可用,性能,數據親和性和需求
Controller manager:負責管理集羣的各種資源,保證資源處於預期的狀態,它由多種controller組成,包括Replication controller,Endpoints controller,Namespace controller,Serviceaccounts controller等等
Etcd:負責保存k8s集羣的配置信息和各種資源的狀態信息,當數據發生變化時,etcd會快速的通知k8s相關組件。第三方組件,他有可替換方案(consul,zookee saper)
Pod:k8s集羣的最小組成單位,一個pod內,可以運行一個或多個容器,大多數情況下,一個pod內只有一個container容器
Flannel:是k8s集羣網絡方案,可以保證的跨主機通信,第三方解決方案,也有替換方案
Coredns:域名解析功能
Kubelet:她是node的agent(代理),當scheduler確定某個node上運行pod之後,會將pod的具體配置信息發送給該節點的kubelet,kubelet會根據這些信息創建和運行容器,並向master報告運行狀態
Kube-proxy:負責將訪問service的tcp/udp數據流轉發後到後端的容器,如果有多個副本,kube-proxy會實現負載均橫