k8s master组件
1.api server:k8s对外提供入口,提供用户接入api,管理资源的入口
2.schuduler:资源调度,负责决定将pod放在哪个node上
3.controller manager:负责管理各资源,保证资源处于预期的状态。资源【node,controll,pod,namespace】
4.etcd:负责保存k8s集群的各组件的配置文件和资源的状态信息
-----master
Kubernetes中的大部分概念Node、Pod、Replication Controller、Service等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过kubectl工具(API调用)执行增、删、改、查等操作并将其保存在etcd中持久化存储。从这个角度来看,kubernetes其实是一个高度自动化的资源控制系统,通过跟踪对比etcd库里保存的“资源期望状态”与当前环境中的“实际资源状态”的差异来实现自动控制和自动纠错的高级功能。
k8s node 组件
- kubelet:负责pod容器的创建,启停等任务
- kube-proxy: 负责service的负载均衡的实现。写入规则至iptables或ipvs实现service的映射访问
- docker-engine: 节点容器管理
-------node
Node节点可动态增加到kubernetes集群中,前提是这个节点已经正确安装、配置和启动了上述的关键进程,默认情况下,kubelet会向Master注册自己,这也kubernetes推荐的Node管理方式。一旦Node被纳入集群管理范围,kubelet会定时向Master汇报自身的情况,以及之前有哪些Pod在运行等,这样Master可以获知每个Node的资源使用情况,并实现高效均衡的资源调度策略。如果Node没有按时上报信息,则会被Master判断为失联,Node状态会被标记为Not Ready,随后Master会触发工作负载转移