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;

 

posted @ 2019-06-19 12:30  myTang  阅读(321)  评论(0)    收藏  举报