首页 > 其他分享 >scheduler调度流程

scheduler调度流程

时间:2024-09-08 09:04:08浏览次数:10  
标签:器会 流程 调度 节点 打分 scheduler Pod 亲和性

Kubernetes 中的调度器(Scheduler)负责将 Pod 分配到合适的节点上。调度流程可以分为几个关键步骤,以下是详细的调度流程:

调度流程

  1. 监听 Pod 事件

    • 调度器通过 Kubernetes API 监听未调度的 Pod 事件。当一个 Pod 被创建且没有指定节点时,调度器会触发调度过程。
  2. 获取待调度的 Pod

    • 调度器从 API Server 获取待调度的 Pod 信息,包括其需求和限制(如资源请求、节点亲和性等)。
  3. 筛选节点

    • 调度器会根据 Pod 的要求和节点的能力进行筛选。这个过程通常包括以下几个方面:
      • 资源可用性:检查节点是否有足够的 CPU 和内存来满足 Pod 的请求。
      • 亲和性和反亲和性:检查 Pod 是否有特定的节点亲和性或反亲和性规则。
      • 污点和容忍:判断节点是否有污点,Pod 是否具有相应的容忍设置。
      • 其他约束:如节点选择器、Pod 安全策略等。
  4. 打分候选节点

    • 对于通过筛选的候选节点,调度器会为每个节点打分,评估它们的优劣。打分的标准可能包括:
      • 节点的资源利用率。
      • 节点的拓扑位置(如地理位置)。
      • 网络延迟等。
  5. 选择最佳节点

    • 调度器会根据打分结果选择一个最合适的节点来调度 Pod。通常选择得分最高的节点。
  6. 更新 Pod 状态

    • 一旦选择了节点,调度器会更新 Pod 的状态,将其绑定到选定的节点。这一过程会通过 API Server 完成,更新 Pod 的 spec.nodeName 字段。
  7. 通知 Kubelet

    • 选定节点的 Kubelet 会被通知该 Pod 现在可以在其上运行。Kubelet 随后会拉取容器镜像并启动 Pod。
  8. 监控和管理

    • 调度器持续监控集群状态,处理任何新的 Pod 调度请求或节点状态变化,确保集群的整体健康和负载均衡。

总结

Kubernetes 调度器通过一系列步骤,从监听 Pod 事件到选择合适的节点,确保 Pod 能够有效地在集群中运行。它利用资源请求、节点特性、亲和性/反亲和性、污点/容忍等多种因素来做出决策,以实现高效的资源利用和负载均衡。

标签:器会,流程,调度,节点,打分,scheduler,Pod,亲和性
From: https://www.cnblogs.com/love-DanDan/p/18402548

相关文章

  • pod DNS解析流程
    在Kubernetes中,Pod的DNS解析流程主要涉及到KubernetesDNS服务(通常是CoreDNS或kube-dns)以及KubernetesAPI。以下是PodDNS解析的详细流程:1.DNS配置每个Pod在创建时,会根据其所在的Namespace和集群的DNS设置获得DNS配置。Pod的/etc/resolv.conf文件通......
  • 【智能优化算法】水流优化器(WFO),SCI顶刊,含有MathType公式、伪代码、visio的流程图、m
    该文末包括5个内容:用MathType编辑的公式、伪代码、visio的流程图,matlab代码,PDF论文,拿来直接用,可以帮助科研者省下超多时间。受自然界水流形态的启发,该算法论文作者提出了一种新的全局优化算法——水流优化器(WFO)。发表在顶级SCI期刊IEEETransactionsonCybernetics(影响因......
  • 简述删除一个Pod流程
    删除一个Pod的流程在Kubernetes(K8s)中是一个相对简单但又涉及多个步骤的过程。以下是删除Pod的简要流程:1.发起删除请求用户可以通过kubectldeletepod<pod-name>命令或K8sAPI发起删除Pod的请求。2.APIServer接收请求APIServer接收到删除请求后,会验证请求的有效性。如......
  • Camunda Modeler流程设计器
    1、介绍任何可执行流程都需要预先设计和配置业务流程模型和BPMN图,BPMN图可以让使用者更容易理解流程的结构,CamundaModeler是一个可视化设计和实现BPMN图表的工具。下面是官方使用文档:1、Modeler中绘制BPMN介绍2、桌面版Modeler使用介绍2、相关概念可以将BPMN的绘制类比于我......
  • Python在报表自动化的优势及实现流程
    Python在报表自动化的优势及实现流程 更新时间:2023年12月28日10:08:08 作者:涛哥聊Python  本文利用Python实现报表自动化,通过介绍环境设置、数据收集和准备、报表生成以及自动化流程,展示Python的灵活性和丰富的生态系统在报表自动化中的卓越表现,从设置虚拟环境到使......
  • 注册域名流程是怎样
    注册域名需要经过一系列步骤,下面是详细的注册流程。**1.选择合适的域名域名是网站的门面,因此选择一个好记且与业务相关的域名至关重要。通常建议域名要简短、易拼写、容易记忆,并且最好与网站的主题或内容相关。**2.确认域名的可用性在注册域名之前,需要确认所选择的域名......
  • 流程控制
    流程控制在任何一门程序设计语言中,都需要支持满足程序结构化所需要的三种流程控制:顺序控制分支控制(条件控制)循环控制顺序控制:在程序流程控制中,最基本的就是顺序控制。程序会按照自上而下的顺序执行。分支流程控制if语句switch语句if语句【重要】分类:单分支,......
  • Android BLE scan流程及源码分析
    在Android系统中,startScan 方法用于启动蓝牙扫描,本文针对较新的Android版本14进行BLE扫描源码分析。一、AndroidBle scan的一般流程概述1.权限和蓝牙适配器检查应用需要确保具有适当的蓝牙和位置权限(从Android6.0开始,蓝牙扫描通常需要位置权限)。应用还需要检查......
  • Azkaban:强大的开源工作流调度系统
    一、概述在大数据生态系统中,随着数据量的爆炸式增长和任务复杂度的提升,管理和调度大规模的批处理任务成为了一项艰巨的挑战。Azkaban是LinkedIn开发的一款开源工作流调度系统,专为管理和调度大规模的Hadoop作业设计。它提供了一种简单且有效的方式来定义、调度和监控复......
  • 模板化-上线文件的流程步骤
    1.服务和分支,避免上线服务遗漏,及定义上线的优先级先后顺序。2.apollo配置,检查上线的pro环境的apollo配置,否则项目启动因为缺少配置会启动报错。3.SQLDMS,上线之前先执行脚本,否则会因为缺少字段而导致系统报错。flow系统加上客户和商户的会员号字段需求,上线之前忘记了。ALTERTA......