• 博客访问: 848296
  • 博文数量: 257
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-05 14:37
  • 认证徽章:
个人简介

走路 行心 修缘(需要交流的请加我的QQ 273936024)

文章分类

全部博文(257)

文章存档

2018年(67)

2017年(63)

2016年(39)

2015年(20)

2014年(29)

2013年(39)

分类: Docker/K8

2018-05-29 17:28:40

一: 简介


1.Kubernetes  scheduler在整个系统中承担了“承上启下”的重要功能,“承上是指它负责接收Controller Manager创新的新Pod,为其安排一个落脚的Node;  "启下"是指安置工作完成后,目标Node上的kubelet服务进程接管后继工作。

2.Kubernetes scheduler的作用是将待调度的Pod,按照特定的调度算法和调度策略绑定到集群中的某个合适的Node上,并将绑定信息写入etcd中,在整个调度过程中涉及三个对象,分别是:待调度Pod列表,可用Node列表,以及调度算法和策略。

3.目标节点上的kubelet通过API Server监听到Kubernetes scheduler 产生的Pod绑定事件,然后获取对应的Pod清单,下载Image镜像,并启动容器。

二:调度流程

1.预先调度过程,即遍历所有目标Node,筛选出符合要求的候选节点。

2.确定最优节点,在第1步的基础上,采用优选策略计算出每个候选节点的积分,积分最高者胜出。

三:预选策略

1. NoDiskConflict
判断备选Pod的gcePersistentDisk或AWSElasticBlockStore和备选的节点中已存在的Pod是否存在冲突。

2.PodFitsResources
判断备选节点的资源是否满足备选Pod的需求。

3.PodSelectorMathes
判断备选节点是否包含备选Pod的标签选择器指定的标签。

4.PodFitsHost
判断备选Pod的spec.nodeName域所指定的节点名称和备选节点的名称是否一致。如果一致,则返回true,否则返回false.

5.CheckNodeLabelPresence
如果用户在配置文件中指定了该策略,则scheduler会通过RegisterCustomFitPredicate方法注册该策略。

6.CheckServiceAffinity
该策略用于判断备选节点是否包含策略指定的标签,或包含和备选Pod在相同Service和Namespace下的Pod所在节点的标签列表。 如果存在,则返回true,否则返回false.

7.PodFitsPorts

判断备选Pod所用的端口列表中的端口是否在被选中已被占用,如果被占用则返回false,否则返回true

四:优选策略

1.LeastRequestedPriority
从备选节点列表中选出资源消耗最小的节点。

2.CalculateNodeLabelPriority
该策略用于判断策略列出的标签在备选节点中存在时,是否选择该备选节点。

3.BalancedResourceAllocation
从备选节点列表中选出各项资源使用率最均衡的节点。
阅读(4271) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册