从零开始入门 K8s | 调度器的调度流程和算法介绍

本文介绍了Kubernetes调度器kube-scheduler的主要组件和调度流程,包括Policy配置、Informer机制、调度流水线的三个阶段(Scheduler Thread、Wait Thread、Bind Thread),以及详细调度流程中的SchedulingQueue子队列。文章还讨论了调度优化算法,如取样调度和Zone Index,以及调度失败后的处理策略。最后提到了调度算法的实现与Pod的状态机生命周期。
摘要由CSDN通过智能技术生成

点击这里,查看调度算法及如何配置调度器等重要内容

调度流程

调度流程概览

Kubernetes 作为当下最主流的容器自动化运维平台,作为 K8s 的容器编排的核心组件 kube-scheduler 将是我今天介绍的主角,如下介绍的版本都是以 **release-1.16 **为基础,下图是 kube-scheduler 的主要几大组件:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JnYGhk4m-1578642536312)(https://ucc.alicdn.com/pic/developer-ecology/956c74c2e1e546c691eaf1c788895960.png “1.png”)]

Policy

Scheduler 的调度策略启动配置目前支持三种方式,配置文件 / 命令行参数 / ConfigMap。调度策略可以配置指定调度主流程中要用哪些过滤器 (Predicates)、打分器 (Priorities) 、外部扩展的调度器 (Extenders),以及最新支持的 SchedulerFramwork 的自定义扩展点 (Plugins)。

Informer

Scheduler 在启动的时候通过 K8s 的 informer 机制以 List+Watch 从 kube-apiserver 获取调度需要的数据例如:Pods、Nodes、Persistant Volume(PV), Persistant Volume Claim(PVC) 等等,并将这些数据做一定的预处理作为调度器的的 Ca

Kubernetes(K8s)是一种用于容编排和管理的开源平台,它提供了多维资源调度算法来实现高效的资源管理和利用。 K8s使用多维资源调度算法来平衡集群中所有节点的资源负载,确保每个节点能够充分利用其可用的计算和存储资源。这些资源包括CPU、内存、存储和网络带宽等。K8s通过采集集群中每个节点的资源使用情况,并将其报告给调度策略,从而实现资源的智能分配。 在K8s中,多维资源调度算法主要涉及以下几个方面: 1. 资源分配:K8s通过分配节点上的资源来满足容的需求。调度会考虑所有容的资源需求,并将其分配到合适的节点上。该算法会根据容的资源请求和节点的可用资源进行匹配,从而避免资源的浪费和不平衡。 2. 负载均衡:K8s通过负载均衡算法将容分散到不同的节点上,以避免资源瓶颈和单点故障。该算法会根据节点的负载情况和容的资源需求,将容分配到最佳节点上,从而实现负载的均衡。 3. 弹性调度K8s具有弹性调度的能力,可以根据节点的可用资源和容的优先级,自动对容进行调度。当集群容量不足或节点发生故障时,该算法可以自动将容从一个节点迁移到另一个节点上,以确保容的正常运行。 总之,K8s的多维资源调度算法是为了实现高效、均衡和可靠的资源管理。通过合理分配和调度的资源需求,K8s可以最大化地利用集群的资源,并提供高可用性和可伸缩性的应用环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值