1、集群组成 Kubernetes, 一般由Master和Worker Node组成,Master主要集群信息调度(人的脑),WorkerNode主要负责运行容器实例的运行(人的手脚)。 K8S集群组成.png

2、K8S集群基础组件 Master, 整个Kubernetes控制的大脑,它里面包含API Server、Schedule和Controller Manager,还有他信息的存储组件Etcd。 API Server,负责Kubernetes组件之间的通讯工作, Schedule,监听所有工作节点状态,选择把任务合适的分配到工作节点, Control Manager, 负责保证大脑中分配的任务和工作进展一致。 WorkerNode,是Kubernetes的干活的手脚,它包含Kubelet,Kube-Proxy,Kubelet实现的是Pod生命周期管理,负责Pod调度到具体哪个工作节点,拉起容器,以及确保Pod的持续运行, Kube-Proxy,则是负责工作节点的网络通讯保障。 K8S基础组件.png

3、K8S完整的组件 Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。 Kubernetes主要由以下核心组件组成:

etcd保存了整个集群的状态;
apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; 
scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上; kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
kube-proxy负责为Service提供cluster内部的服务发现和负载均衡; 

核心组件之外,推荐的Add-ons:

kube-dns负责为整个集群提供DNS服务
Ingress Controller为服务提供外网入口 
Heapster提供资源监控 
Dashboard提供GUI 
Federation提供跨可用区的集群
Fluentd-elasticsearch提供集群日志采集、存储与查询

K8S完整的组件.png