立即注册 登录
About云-梭伦科技 返回首页

chinaxuzw的个人空间 https://www.aboutyun.com/?31226 [收藏] [复制] [分享] [RSS]

日志

kubernetes核心组件介绍

已有 3373 次阅读2016-1-13 16:08 |个人分类:docker&k8s| kubernetes核心组件

1.  APIServer

        k8s APIServer负责对外提供k8s API服务,它运行在master节点上。任何对资源的增删改查都要交给APIServer处理后才能提交给etcd

APIServer总体上由两部分组成:HTTP/HTTPS服务和一些功能性插件。这些功能性插件又分为两种:一部分与底层IaaS平台(Cloud Provide)相关;

另一部分与资源管理控制(Admission Control)相关。


2.  Scheduler

        Scheduler的作用是根据特定的调度算法将pod调度到minion节点上,这一过程也被称为绑定。Scheduler调度器的输入是待调度的pod和可用的工作节点列表,输出则是一个已经绑定了pod的节点,这个节点是通过调度算法在工作节点列表中选择的最优节点。

        工作节点从哪里来?工作节点并不是由k8s创建,它是由IaaS平台创建,或者就是由用户管理的物理机或者虚拟机。但是k8s会创建一个Node对象,用来描述这个工作节点。描述的具体信息由创建Node对象的配置文件给出。一旦用户创建节点的请求被成功处理,k8s又会立即在内部创建一个Minion对象,再去检查该节点的健康状况。只有那些当前可用的minion才会被认为是一个有效的节点并允许pod调度到上面运行。

        工作节点可以通过资源配置文件或者kubectl命令行工具来创建。k8s主要维护工作节点的两个属性:specstatus来描述一个工作节点的期望状态和当前状态。其中,所谓的当前状态信息由3个信息组成:HostIpNode PhaseNode Condition

        工作节点的动态维护过程依靠Node Controller来完成,它是k8s Controller Manager下属的一个控制器。它会一直不断的检查k8s已知的每台minion节点是否正常工作,如果一个之前已经失败的节点在这个检查循环中被检查为可以工作的,那么node Controller会把这个节点添加到工作节点中,繁殖node Controller会从工作节点中删除这个节点。

        负责Scheduler调度工作的核心进程是Scheduler server,在启动Scheduler server之前,需要进行一些初始化操作,这些操作的结果将作为调度器的配置信息传入,包括:

  • l  初始化kubelet客户端对象client
  • l  初始化用于缓存待调度pod对象的队列podQueue
  • l  初始化存储已调度的所有pod对象链表podLister
  • l  初始化存储所有minion对象的链表MinionLister
  • l  初始化存储所有service对象的链表ServiceLister
  • l  读取调度规则配置文件PolicyConfigFile
  • l  加载调度算法,默认DefaultProvide


3.  Controller Manager

        Controller Manager运行在集群的Master节点上,是基于pod API的一个独立服务,它重点实现service Endpoint(服务端点)的动态更新。管理着k8s集群中各种控制节点,包括之前提到的replication Controllernode Controller

        与APIServer相比,APIServer负责接受用户请求并创建对应的资源,而Controller Manager在系统中扮演的角色是在一旁旁默默的管控这些资源,确保他们永远保持在预期的状态。它采用各种管理器定时的对pod、节点等资源进行预设的检查,然后判断出于预期的是否一致,若不一致,则通知APIServer采取行动,比如重启、迁移、删除等。

4.  kubelet

        kubelet组件工作在k8sminion上,负责管理和维护在这台主机上运行着的所有容器。

  •  kubeletcAdvisor交互来抓取docker容器和主机的资源信息。
  •  kubelet垃圾回收机制,包括容器垃圾回收和镜像垃圾回收。
  •  kubelet工作节点状态同步。

5. kube-proxy

        kube-proxy提供两种功能,一是提供算法将客服端流量负载均衡到service对应的一组后端pod。二是使用etchwatch机制,实现服务发现功能,维护一张从serviceEndpoint的映射关系,从而保证后端podip变化不会对访问者的访问造成影响。


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条