当前位置: 首页 > news >正文

k8s中Pod和Node的故事(1):过滤、打分、亲和性和拓扑分布

一、调度器的介绍

学过《操作系统》课程的计算机学生,或多或少对多核调度、事件触发、进程就绪、阻塞和挂起都有印象。那本教材用了很多章节都在讲调度的原理和算法问题,相信很多同学都头大过。

其实,这些技术体系和思想一直都在用,比如HPC场景和容器调度场景,都有调度算法和调度管理器,来平衡各种计算任务与算力资源规格的匹配问题。

有两三年,我在HPC技术领域工作,那时候不得不研究各种调度器的原理。

从现在来看,那些调度器与kubernetes中Scheduler的调度策略也没啥大的区别,首先集群都要了解各节点的健康、资源状态,同时也要对待调度的作业/Pod 需求识别清楚,最后就是匹配两者了。

在那段时间里,我用过LSF、Slurm调度器,它们都是十分好用的软件,支持各种丰富的调度策略,如先到先得、资源预留、抢占调度……。这总让我无意识地去对比容器调度器kube-scheduler。

如果读者朋友也接触过HPC领域的调度器,那么对于k8s的调度器和策略也有了解的基础了。

K8s作为一个集群软件,凭借强大的能力推动了云计算技术的前进和应用,现在各种高可用、弹性伸缩的业务底层都离不开它的能力支撑。


二、kube-scheduler如何为Pod选择最合适的Node

调度器通过 K8s 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod。 
调度器会将所发现的每一个未调度的 Pod 调度到一个合适的节点上来运行。 调度器会依据下文的调度原则来做出调度选择。

Kube-scheduler 选择一个最佳节点来运行新创建的或尚未调度(unscheduled)的 Pod。 由于 Pod 中的容器和 Pod 本身可能有不同的要求,调度程序会过滤掉任何不满足 Pod 特定调度需求的节点。 


kube-scheduler 给一个 Pod 做调度选择时包含两个步骤: 1. 过滤;2. 打分。

2.1 过滤

过滤阶段会将所有满足 Pod 调度需求的节点选出来

例如,PodFitsResources过滤函数会检查候选节点的可用资源能否满足 Pod 的资源请求。 在过滤之后,得出一个节点列表,里面包含了所有可调度节点;通常情况下, 这个节点列表包含不止一个节点。

http://www.dtcms.com/a/445719.html

相关文章:

  • springboot自助甜品网站的设计与实现(代码+数据库+LW)
  • 网站建设业动态wordpress出现404
  • Vue3组件通信8大方式详解
  • LeetCode 刷题【100. 相同的树、101. 对称二叉树、102. 二叉树的层序遍历】
  • Go基础:Go语言应用的各种部署
  • 团购网站 seo电商网站怎么做
  • 无Dockerfile构建:云原生部署新姿势
  • 深入解析 IDM 插件开发挑战赛:技术要点与实践指南
  • 颜群JVM【03】类的初始化
  • 达梦数据库常用初始化参数与客户端工具使用
  • 命令行安装 MySQL 8.4.6
  • 数据库--数据库约束和表的设计
  • [Windows] 磁盘映像管理工具:WimTool v1.7.2025.1001
  • 公司自己做网站晋城企业网站建设价格
  • 【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate
  • leetcode 79 单词搜索
  • 站长之家官网查询电子商务网站建设与实践上机指导
  • 二叉树实战笔记:结构、遍历、接口与 OJ 实战
  • 哈尔滨php网站开发公司设置网站默认首页
  • 华为OD机试C卷 - 分披萨 - 贪心 DFS - (Java C++ JavaScript Python)
  • 仿照STM32 HAL库设计思想使用FreeRTOS实现异步非阻塞式设备驱动
  • 铜川做网站电话网页设计规范
  • ssc-FinLLM 金融大模型 相关链接
  • 二叉排序树(建树、查找、删除)
  • Linux学习笔记--i2cget 命令
  • 网站建设的标签指的是响应式网页设计图片
  • 用 CodeBuddy CLI + Prompt,从零到可运行:前后端混合管理系统的高效实战
  • 电源——电荷泵详解
  • 榆林国贸网站建设网站的关键词挖掘方式
  • 从思路到落地:用 Redis 搭建超低延迟在线特征存储库