Kubernetes核心组件篇 (三) : 核心组件Kube-Scheduler

本文深入介绍了Kubernetes的核心组件Kube-Scheduler,讲解了其调度流程、预选策略和优选策略,包括nodeSelector、nodeAffinity、podAffinity等。并提供了多个Demo实例,展示定向调度、亲和性调度的实际应用。
摘要由CSDN通过智能技术生成

一、Scheduler简介

Scheduler负责Pod的生命周期中的后半部分,即Pod的调度。在整个系统中起"承上启下"作用

承上:负责通过api server查询未分配node的pod,接收Controller Manager创建的新的Pod,根据调度策略为其选择一个合适的Node,通过通过RC/Deployment/Daemonset/Job完成pod的调度;

启下:Node上的kubelet接管Pod的生命周期。

工作原理:

第一、API创建新的Pod

第二、Controller Manager补充Pod的副本

第三、Scheduler按照特定的调度算法绑定到集群中匹配的node上

第四、绑定成功,将绑定信息写入etcd当中

Scheduler:

1)通过调度算法为待调度Pod列表的每个Pod从Node列表中选择一个最适合的Node,并将信息写入etcd中

2)kubelet通过API Server监听到kubernetes Scheduler产生的Pod绑定信息,然后获取对应的Pod清单,下载Image,并启动容器。

二、调度流程

1、预选调度过程,即遍历所有目标Node,筛选出符合要求的候选节点,kubernetes内置了多种预选策略(xxx Predicates)供用户选择

2、确定最优节点,在第一步的基础上采用优选策略(xxx Priority)计算出每个候选节点的积分,取最高积分。

调度流程通过插件式加载的“调度算法提供者”(AlgorithmProvider)具体实现,一个调度算法提供者就是包括一组预选策略与一组优选策略的结构体。

三、Scheduling节点调度

1、nodeSelector(定向调度):导读到label匹配的node节点中

2、nodeAffinity(node亲和性调度):

第一、调度到label匹配的node节点中(可以设置优选、匹配更丰富)

第二、requiredDuringSchedulingRequiredDuringExecution(类似于Selector),当pod不满足条件时,系统将从该node上移除之前调度的pod

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值