master节点
api server
- 对外服务的接入点,提供对各种资源增删查改以及watch的rest api
- 对接kubectl,kubectl proxy,kubelet也按时上报心跳信息
- (不常用)提供直接访问node的proxy接口
control manager
不断读取系统中的各个指标,根据预定义的目的更改系统状态,比如pod扩容需要检测到系统pod低于期望值,所以要新建pod。每个controller都是一个控制循环
- replication controller
- node controller
- resourcequota controller
- service controller
- endpoint controller
- …
scheduler
接受来自controller manager的任务,选择在具体的node上增删pod,然后将任务交给kubelet。选择过程分为两步:
- 预选调度,排除硬性条件不满足的node,比如label不匹配,资源不足等等
- 打分,计算最优节点
node节点
kubelet
- 处理任务,管理动态pod
- 管理static pod
- 定时上报本机运行信息
cadvisor
主要用于监控node节点的资源使用状况,kubelet读取这个信息上报给api server
现在不是被prometheus取代了吗???
kubeproxy
service对象创建后会生成一个虚拟ip,kubeproxy负责在每台node上创建iptables规则将对虚拟ip的访问转发到正确的容器上去