Kubernetes-核心原理-之一(共14页).docx
《Kubernetes-核心原理-之一(共14页).docx》由会员分享,可在线阅读,更多相关《Kubernetes-核心原理-之一(共14页).docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上Kubernetes 核心原理 之一Kubernetes API Server原理分析Kubernetes API Server概述Kubernetes API Server提供了Kubernetes各类资源对象如,(如Pod、RC、Service等)的增、删、改、查以及watch等http接口,成为集群内各个功能模块之间数据交互和通信中心的枢纽,是整个系统的数据总线和数据中心。除此之外,它还有以下特性: 是集群管理的API入口 是资源配额控制的入口 提供了完备的集群安全机制Kubernetes API Server通过一个kube-apiserver的进程提供服务,
2、该进程运行在Master节点上。通常我们可以通过Kubernetes API Server交互,他们之前的接口是Rest调用。Kubernetes Proxy API接口Kubernetes Proxy API代理REST请求,Kubernetes API Server把收到的REST请求转发到某个Node上的Kubernetes守护进程的REST端口上,由该Kubernetes进程负责响应。集群功能模块之间的通信集群内每个功能模块,通过API Server将信息存入etcd,当需要获取和操作这些数据时,则通过API Server提供的REST接口来实现,从而实现了各个模块之间的信息交互。ku
3、bernetes结构图如下:Control Manager原理Control Manager作为集群内部的股哪里控制中心,负责集群内的Node、Pod副本、服务端点(EndPoint)、命名空间(Namespace)、服务帐号、资源定额等管理,的那个某个Node意外宕机时,Control Manager会及时发现此故障并执行自动化修复流程,确保集群始终处于预期的工作状态。Control Manager结构图:Replication ControllerReplication Controller用于确保在任何时候一个集群中一个RC所关联的Pod副本数量保持在预设值。如果发现Pod的副本数量超过
4、预设值,则Replication Controller会销毁一些Pod副本,反之,Replication Controller会自动创建新的Pod副本,直到符合条件的Pod副本数量达到预设值。Node ControllerNode Controller通过API Server实时获取Node的相关信息,实现管理和监控集群的中的每个Node节点的相关信息,ResourceQuota Controller资源配额管理这一高级功能,资源配额管理确保指定的系统资源对象在任何时候都不会超量占用系统物理资源目前Kubernetes支持如下三个层次的资源管理配额管理: 容器级别,可以对CPU和Memory进
5、行限制 Pod级别,可以对一个Pod里面的所有容器的可用资源进行限制 Namespace级别,为Namespace(多租户)级别的资源限制,包括: Pod数量; Replication Controller 数量; Service数量; ResourceQuota数量; Secret数量; 可持有的PV(Presistent Volume)数量。Namwspace Control用户可以创建新的API Server可以创建新的Namespace并保存在etcd中,Namespace Controller定时可以通过API Server读取这些Namespace信息并保存到etcd中Servic
6、e Controller与Endpoint ControllerService、Endpoints与Pod的关系,如图:Endpoints表示一个Service对应的所有的Pod副本的访问地址,而Endpoints Controller,就是负责生成和维护所有Endpoints对象的控制器,它负责监听Service和对应的Pod副本的变化,如果监听到Service被删除,则删除和该Service同名的Endpoints对象。Node上的kube-proxy进程读取每个Service的Endpoints,实现了Service的负载均衡功能。Scheduler原理分析Kubernetes Sche
7、duler的作用是将待调度的Pod(API创建的Pod、Controller Manager为弥补副本而创建的Pod等)按照特定的调度算法和调度策略绑定到集群中某个合适的Node上,并将绑定信息写入etcd。在调度过程中涉及三个对象:待调度列表、可用Node列表、以及调度算法和策略。目标节点上的kubelets通过API Server监听到Kubernetes Scheduler产生的Pod绑定事件,然后获取对应的Pod清单,下载Image镜像,并启动容器。Scheduler流程,如下图:Kubernetes Scheduler 当前提供的调度流程分为以下几步: 预选调度过程 确定最优节点Ku
8、bernetes Scheduler的调度流程是通过插件方式加载的“调度算法提供者”,具体实现的,func RegisterAlgorithmProvider(name string, predicatekeys, priorityKeys, util.StringSet)它包含三个参数,name string为参数名,predicateKeys,参数为算法用到的预选策略集合,priorityKeys为算法用到的优选策略集合。Kubernetes 运行机制分析在Kubenetes集群中,在每个Node节点上都会启动一个kublet服务进程,该进程用于处理Master节点下发到本节点的任务,管理
9、Pod及Pod里面的容。 每个kubelet进程会在API Server上注册节点自身信息,定期向Master节点汇报资源的使用情况,并通过cAdvisor监控容器和节点资源。节点管理节点通过设置kubelet的启动参数,”register-node”, 来决定是否向API Server注册自己。Pod 管理kublet通过以下几种方式获取自身Node上所要运行的Pod清单: 文件: kubelet启动参数,”config”指定的配置文件目录下的文件。通过file-check-frequency设置检查该文件目录的时间间隔,默认为20s。 HTTP站点(URL): 通过”manifest-ur
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Kubernetes 核心 原理 之一 14
限制150内