news 2026/3/10 15:38:03

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/10 10:31:42

隐形眼镜护理液浸泡的关键

使用护理液浸泡隐形眼镜并非只是倒一点、泡一泡那么简单,这一步做不对的话,镜片不干净不说,还可能伤眼睛。那么,浸泡过程中有哪些关键点需要大家注意的呢? 护理液的核心作用是清洁、杀菌以及保湿,全面保护和…

作者头像 李华
网站建设 2026/3/3 14:28:56

Obsidian主页定制终极指南:打造你的专属知识管理门户

还在为Obsidian杂乱无章的主页而烦恼吗?想要一个既美观又实用的知识管理门户吗?今天就来教你如何通过Farouks Homepage主题,快速打造个人专属的Obsidian主页。这个主题专为知识管理而设计,集成了卡片布局、动态进度条和智能倒计时…

作者头像 李华
网站建设 2026/3/3 14:28:56

三步完成InternLM3模型4bit量化:显存直降50%的终极部署指南

三步完成InternLM3模型4bit量化:显存直降50%的终极部署指南 【免费下载链接】InternLM Official release of InternLM series (InternLM, InternLM2, InternLM2.5, InternLM3). 项目地址: https://gitcode.com/gh_mirrors/in/InternLM 还在为AI大模型部署时爆…

作者头像 李华
网站建设 2026/3/8 20:33:52

fcitx5 vs ibus:中文输入法性能深度对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个输入法性能测试工具,功能包括:1. 测量输入法启动时间 2. 记录输入响应延迟 3. 统计内存和CPU占用 4. 测试词库加载速度 5. 生成可视化对比报告。要求…

作者头像 李华
网站建设 2026/2/25 11:06:56

智能简历解析终极指南:如何用AI技术精准提取关键信息

智能简历解析终极指南:如何用AI技术精准提取关键信息 【免费下载链接】Resume-Matcher Resume Matcher is an open source, free tool to improve your resume. It works by using language models to compare and rank resumes with job descriptions. 项目地址…

作者头像 李华
网站建设 2026/3/3 4:52:03

springAI学习 一

一、Spring AI 概述 什么是Spring AI? Spring生态的AI集成框架 统一API访问不同AI服务(OpenAI、Azure OpenAI、Anthropic等) 支持多种AI功能:聊天、文生图、嵌入、向量存储等 Spring AI 是一个用于 AI 工程的应用框架。 其目标…

作者头像 李华