Kubernetes核心原理之一.docx
上传人:王子****青蛙 上传时间:2024-09-12 格式:DOCX 页数:7 大小:1.8MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

Kubernetes核心原理之一.docx

Kubernetes核心原理之一.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HYPERLINK"http://blog.csdn.net/chenmeng729970897/article/details/75634420"KubernetesAPIServer原理分析KubernetesAPIServer概述KubernetesAPIServer提供了Kubernetes各类资源对象如,(如Pod、RC、Service等)的增、删、改、查以及watch等http接口,成为集群内各个功能模块之间数据交互和通信中心的枢纽,是整个系统的数据总线和数据中心。除此之外,它还有以下特性:是集群管理的API入口是资源配额控制的入口提供了完备的集群安全机制KubernetesAPIServer通过一个kube-apiserver的进程提供服务,该进程运行在Master节点上。通常我们可以通过KubernetesAPIServer交互,他们之前的接口是Rest调用。KubernetesProxyAPI接口KubernetesProxyAPI代理REST请求,KubernetesAPIServer把收到的REST请求转发到某个Node上的Kubernetes守护进程的REST端口上,由该Kubernetes进程负责响应。集群功能模块之间的通信集群内每个功能模块,通过APIServer将信息存入etcd,当需要获取和操作这些数据时,则通过APIServer提供的REST接口来实现,从而实现了各个模块之间的信息交互。kubernetes结构图如下:ControlManager原理ControlManager作为集群内部的股哪里控制中心,负责集群内的Node、Pod副本、服务端点(EndPoint)、命名空间(Namespace)、服务帐号、资源定额等管理,的那个某个Node意外宕机时,ControlManager会及时发现此故障并执行自动化修复流程,确保集群始终处于预期的工作状态。ControlManager结构图:ReplicationControllerReplicationController用于确保在任何时候一个集群中一个RC所关联的Pod副本数量保持在预设值。如果发现Pod的副本数量超过预设值,则ReplicationController会销毁一些Pod副本,反之,ReplicationController会自动创建新的Pod副本,直到符合条件的Pod副本数量达到预设值。NodeControllerNodeController通过APIServer实时获取Node的相关信息,实现管理和监控集群的中的每个Node节点的相关信息,ResourceQuotaController资源配额管理这一高级功能,资源配额管理确保指定的系统资源对象在任何时候都不会超量占用系统物理资源目前Kubernetes支持如下三个层次的资源管理配额管理:容器级别,可以对CPU和Memory进行限制Pod级别,可以对一个Pod里面的所有容器的可用资源进行限制Namespace级别,为Namespace(多租户)级别的资源限制,包括:Pod数量;ReplicationController数量;Service数量;ResourceQuota数量;Secret数量;可持有的PV(PresistentVolume)数量。NamwspaceControl用户可以创建新的APIServer可以创建新的Namespace并保存在etcd中,NamespaceController定时可以通过APIServer读取这些Namespace信息并保存到etcd中ServiceController与EndpointControllerService、Endpoints与Pod的关系,如图:Endpoints表示一个Service对应的所有的Pod副本的访问地址,而EndpointsController,就是负责生成和维护所有Endpoints对象的控制器,它负责监听Service和对应的Pod副本的变化,如果监听到Service被删除,则删除和该Service同名的Endpoints对象。Node上的kube-proxy进程读取每个Service的Endpoints,实现了Service的负载均衡功能。Scheduler原理分析KubernetesScheduler的作用是将待调度的Pod(API创建的Pod、ControllerManager为弥补副本而创建的Pod等)按照特定的调度算法和调度策略绑定到集群中某个合适的Node上,并将绑定信息写入etcd。在调度过程中涉及三个对象:待调度列表、可用Node列表、以及调度算法和策略。目标节点上的kubelets通过APIServer监听到K