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

K8S系列之6.2:调度进阶(污点、容忍、亲和性与自定义调度器)

Kubernetes调度器被称为集群的"大脑",负责将Pod分配到合适的节点。本章将从基础调度深入到高级调度策略,让你从"能调度"进阶到"调度好",实现资源的最优利用和业务的最佳性能。

引言:调度器的进化之路

从简单的随机调度到智能的感知调度,Kubernetes调度器经历了显著的演进:

随机调度
节点选择器
亲和性/反亲和性
污点与容忍
自定义调度器
多调度器协同

一、污点(Taints)与容忍(Tolerations):节点隔离的艺术

1.1 污点与容忍的核心概念

污点是节点的属性,用于排斥Pod;容忍是Pod的属性,允许Pod被调度到有特定污点的节点上。

Pod容忍
节点污点
匹配
不匹配
匹配
不匹配
容忍所有
关键服务
容忍部分
普通服务
容忍特定
特殊服务
NoSchedule
专用节点
NoExecute
问题节点
PreferNoSchedule
优选节点
Pod无法调度
Pod被驱逐

1.2 污点的三种效果详解

NoSchedule:硬性排斥
# 为GPU节点添加污点kubectl taint nodes gpu-node-1hardware=gpu:NoSchedule# 为生产环境节点添加污点kubectl taint nodes prod-node-1environment=production:NoSchedule
PreferNoSchedule:软性排斥
# 为测试节点添加软污点kubectl taint nodes test-node-1environment=test:PreferNoSchedule
NoExecute:驱逐排斥
# 当节点出现问题时,Kubernetes会自动添加NoExecute污点kubectl taint nodes unhealthy-node-1 node.kubernetes.io/unreachable:NoExecute# 手动添加维护污点kubectl taint nodes node-1maintenance=true:NoExecute

1.3 容忍的配置模式

完全容忍模式
# 容忍任意值的特定污点tolerations:-key:"node.kubernetes.io/unreachable"operator:"Exists"# 只要存在该键就容忍effect:"NoExecute"tolerationSeconds:6000# 6000秒后才驱逐
精确容忍模式
# 只容忍特定值的污点tolerations:-key:"hardware"operator:"Equal"# 必须等于指定值value:"gpu"effect:"NoSchedule"
多污点容忍模式
# 容忍多个污点tolerations:-key:"environment"operator:"Equal"value:"production"effect:"NoSchedule"-key:"dedicated"operator:"Exists"effect:"NoSchedule"-key:"node.kubernetes.io/not-ready"operator:"Exists"effect:"NoExecute"tolerationSeconds:300# 5分钟后驱逐

1.4 实战:构建多环境集群

集群节点规划
# 生产节点kubectl taint nodes prod-node-{1..3}environment=production:NoSchedule kubectl label nodes prod-node-{1..3}environment=productiontier=frontend# 预发节点kubectl taint nodes staging-node-{1..2}environment=staging:PreferNoSchedule kubectl label nodes staging-node-{1..2}environment=staging# GPU节点kubectl taint nodes gpu-node-{1..2}hardware=gpu:NoSchedule kubectl label nodes gpu-node-{1..2}hardware=gpuaccelerator=nvidia-tesla-v100# 测试节点kubectl label nodes test-node-{1..3}environment=test
应用容忍配置
# 生产环境应用apiVersion:apps/v1kind:Deploymentmetadata:name:production-appspec:template:s
http://www.cnnetsun.cn/news/18361.html

相关文章:

  • 从零玩转RT-Thread(20):为什么需要定时器?——定时器的应用场景
  • eino框架结构化输出解析:从混乱文本到精准数据的魔法转换
  • 小爱音箱终极音乐解放方案:XiaoMusic完整使用指南
  • 从零打造专业级Vue滑块控件:vue-slider-component深度实践指南
  • AnuPpuccin主题深度体验:5个技巧让你的Obsidian笔记焕然一新
  • AI一键搞定!Linux安装JDK17的最佳实践
  • Win11Debloat:释放系统潜能,打造专属纯净Windows体验
  • Python Web开发终极指南:用Ludic框架重构你的前端体验
  • F2批量重命名终极指南:从入门到精通的完整解决方案
  • 深蓝词库转换工具的技术架构与应用实践
  • 2025年CLIP模型爆发:从跨模态基座到产业变革的技术革命
  • 腾讯混元图像3.0登顶全球!800亿参数重构AIGC行业格局
  • halcon求区域交集——intersection
  • 如何用5分钟掌握AMD Ryzen处理器深度调试技巧?终极完整教程
  • 终极Nginx Web界面管理指南:从入门到精通的一站式解决方案
  • 收藏!大模型推理核心:从Prefill到KVCache,小白也能懂的底层逻辑
  • PySceneDetect终极指南:零基础实现智能视频场景自动化分割
  • 5分钟搞定Windows应用拦截:效率提升指南
  • 基于VUE的线上签到系统[VUE]-计算机毕业设计源码+LW文档
  • 深度解析vue-slider-component:打造高度定制化的Vue滑块组件
  • Pose-Search终极指南:开启智能人体姿势识别新纪元
  • 基于VUE的文章发布系统[VUE]-计算机毕业设计源码+LW文档
  • BBDown:B站视频下载的终极解决方案
  • Dify企业级实战深度解析 (5)
  • 游戏增强工具YimMenu:从入门到精通的完整指南
  • B站视频下载神器:BiliDownloader完全使用手册
  • 如何快速合并分割APK:开源工具的终极解决方案指南
  • 实时语音转写技术革命:WhisperLiveKit如何重塑语音交互体验
  • 基于海马体突触修剪机制的动态剪枝策略在量化交易系统中的实现
  • 【毕业设计/课程设计】桃树种植环境检测系统系统源码+论文+PPT+数据