ControllserManager
维护集群的状态,负责故障检测,扩缩容,滚动更新
Scheduler
把pod调度给相应的node上
Etcd
一致性存储,持久化的数据都存储到etcd
Pod,service,集群状态保存到etcd
Kubelet
每个node上都有一个kubelet
维护node节点上的容器的生命周期,维护volume,网络的管理
Kube-proxy
提供内部的服务发现和负载均衡,为service提供落地的方法
Kube-dns
负载整个集群的dns服务
不是必须有的,但通常会需要
Dashboard
集群数据展示及操作
Kubernetes的设计理念
- API设计原则
API是声明式的
对于重复的操作都是稳定的,所有的操作都是名词不是动词
以操作意图为基础的设计;以业务基础出发:调度管理容器 - 控制机设计原则
假定任何错误的可能并做容错处理
故障:磁盘,网络,外部系统,系统本身代码
模块自我修复能力
优雅降级,基本功能不会依赖高级功能,不会因为高级功能而影响基本功功能