--- title: Kubernetes Taints 与 Tolerations(节点调度与验证) date: 2025-11-26 keywords: - Taints - Tolerations - NoSchedule - PreferNoSchedule - NoExecute description: 使用节点污点与Pod容忍控制工作负载调度与隔离,在混合节点与隔离场景中提升可靠性,提供配置与验证方法。 categories: - 文章资讯 - 技术教程 --- ## 概述 污点为节点设置排斥属性,容忍允许特定Pod在被污点的节点上调度或继续运行。可用于隔离关键任务节点、专用GPU节点或下线节点。 ## 关键实践与参数 - 污点效果: `NoSchedule` `PreferNoSchedule` `NoExecute` - 容忍格式: `key` `operator` `value` `effect` `tolerationSeconds` - 场景: 专用节点、下线排空、混合集群隔离 - 组合: 与Affinity/Anti-Affinity协同 ## 示例/配置/实现 ```bash kubectl taint nodes node1 dedicated=true:NoSchedule ``` ```yaml apiVersion: apps/v1 kind: Deployment metadata: { name: api } spec: replicas: 3 selector: { matchLabels: { app: api } } template: metadata: { labels: { app: api } } spec: tolerations: - key: "dedicated" operator: "Equal" value: "true" effect: "NoSchedule" ``` ## 验证 - 调度控制: 未容忍的Pod不在污点节点调度, 容忍的Pod可调度 - 迁移行为: `NoExecute` 下未容忍Pod被驱逐 - 稳定性: 隔离后关键服务稳定, 非关键任务被限制 - 观测: 记录调度与驱逐事件 ## 注意事项 - 慎重使用 `NoExecute`, 需结合PDB - 避免过度依赖容忍导致资源不均衡 - 与资源配额与优先级联动 - 定期复盘节点角色与策略

发表评论 取消回复