kubelet
连接master和node之间的桥梁、负责维护pod和容器的生命周期,监听到master下发的任务、创建、更新、停止pod等任务
Master节点组件(三节点)
etcd
分布式K-V数据库
保存了整个集群的状态
raft算法
apiserver
提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
controller manager
控制器的管理者、内部管理控制中心
负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
replication controller
node controller
deployment controller
ndpoint controller
scheduler
负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
worker Node
Container runtime
负责镜像管理以及Pod和容器的真正运行(CRI)
docker
kube-proxy
负责为Service提供cluster内部的服务发现和负载均衡
在node上实现pod网络代理
分层架构
核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境
应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)
管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)
接口层:kubectl命令行工具、客户端SDK以及集群联邦
生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴
Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等
Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等