Kubernetes整体架构(一)
今天开始写kubernetes系列文章:
1、kubernetes的整体架构
2、kubernetes通过搭建本地集群快速入门
3、kubernetes的核心组件
4、kubernetes的核心对象
5、kubernetes的网络原理
6、kubernetes的高可用集群实战
目前先分这几个系列来写
下面先来看看kubernetes的整体架构图:

上图就是kubernetes的架构图,
一、Master节点:集群控制节点,负责整个集群的管理和控制
kube-apiserver组件:提供了http rest接口,是kubernetes里所有资源增删改查的唯一入口
kube-controller-manager组件:kubernetes所有资源的自动化控制中心
kube-scheduler组件:负责整个资源的调度
其中每Master节点上还启动了一个etcd进程,所有的kubernetes里的资源对象的数据都存储在etcd中。
二、Node节点:工作节点,当一个节点宕机,其上的负载会被Master自动转移到其他工作节点上去。
kubelet组件:在每个Node上运行的代理,负责跟Master节点协作来并控制docker如何工作,确保容器在pod中运行
kube-proxy组件:实现kubernetes的service与pod中的容器通信和实现负载均衡机制
容器运行时(docker):负责本机的容器创建和管理
Node节点可以在运行期间动态添加的kubernetes集群中,kubelet会向Master注册自己,一旦Node被纳入集群管理,kubelet会定时向Master节点上报自己的cpu、内存等情况,这样Master可以获知每个Node的资源使用情况,并实现高效的资源调度策略。而如果某个Node超过指定时间不上报信息时,会被Master判定为“失联”,Node的状态被标为“NoReady”,出现这个情况可以通过查询节点的kubelet的日志查找原因。
接下来看看kubernetes的一个完整调度过程:

1、通过kubectl调用apiserver接口创建一个deployment资源,apiserver接收到命令后,校验完配置信息没问题后先把数据存储到etcd之后会立即返回成功信息到kubectl客户端,并通知deployment controller manager;
2、deployment controller manager收到通知后,会去调apiserver接口去创建一个replicaset资源并存储数据到etcd,并通知replicaset controller manager;
3、replicaset controller manager收到通知后,同样会去调apiserver接口去创建一个pod资源并存储数据到etcd,并通知scheduler;
4、scheduler收到通知后通过一定的调度策略找到对应的Node节点上的kubelet代理,再由kubelet调用docker接口去创建相应的pod和container;

浙公网安备 33010602011771号