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

k8s污点与容忍介绍

K8s污点(Taint)与容忍(Toleration)介绍

污点和容忍是Kubernetes调度机制的核心组成部分,用于控制Pod在节点上的部署逻辑。污点是节点属性,用于标记节点拒绝某些Pod;容忍是Pod属性,允许Pod调度到带有特定污点的节点上。

  • 污点(Taint)

    • 由键(key)、值(value)和效果(effect)组成,格式为 key=value:effect
    • 效果分为三类:
      • NoSchedule:禁止调度(已运行的Pod不受影响)。
      • PreferNoSchedule:尽量避免调度。
      • NoExecute:禁止调度且驱逐已运行但不满足容忍的Pod。
  • 容忍(Toleration)

    • 定义在Pod的spec.tolerations中,匹配节点的污点以实现调度。
    • 支持精确匹配(keyvalueoperator: Equal)或模糊匹配(operator: Exists)。

典型应用案例

  1. 专用节点隔离

    • 节点标记污点:
      kubectl taint nodes node1 dedicated=teamA:NoSchedule
      
    • 仅允许特定Pod(如TeamA的服务)容忍该污点:
      tolerations:
      - key: "dedicated"operator: "Equal"value: "teamA"effect: "NoSchedule"
      
  2. GPU节点调度

    • 节点标记污点:
      kubectl taint nodes gpu-node hardware=gpu:NoSchedule
      
    • GPU工作负载Pod需添加对应容忍:
      tolerations:
      - key: "hardware"operator: "Equal"value: "gpu"effect: "NoSchedule"
      
  3. 节点维护驱逐

    • 维护前标记节点为NoExecute
      kubectl taint nodes node2 maintenance=yes:NoExecute
      
    • 关键Pod添加容忍以避免被驱逐:
      tolerations:
      - key: "maintenance"operator: "Exists"effect: "NoExecute"
      

核心用途

  • 资源隔离:将节点专用于特定团队或任务(如机器学习、数据库)。
  • 硬件调度:确保Pod运行在具备特殊硬件的节点(如GPU、SSD)。
  • 节点维护:优雅驱逐Pod或保留关键服务。
  • 故障隔离:通过污点标记问题节点,限制Pod调度。

注意事项

  • 权限控制:污点操作需管理员权限,避免误操作导致调度问题。
  • 容忍过度:滥用容忍可能导致Pod调度到不合适的节点(如资源不足)。
  • 效果选择
    • NoExecute需谨慎使用,可能触发Pod大规模驱逐。
    • PreferNoSchedule适合软性约束场景。
  • 默认容忍:Kubernetes会自动为部分系统组件(如DaemonSet)添加容忍,无需手动配置。

调试技巧

  • 查看节点污点:
    kubectl describe node <node-name> | grep Taints
    
  • 模拟调度结果:
    kubectl describe pod <pod-name> | grep -A10 Tolerations
    

文章转载自:

http://1vLyMysr.ckLLd.cn
http://gGvPJ5s7.ckLLd.cn
http://Eh7yPLQY.ckLLd.cn
http://2QgjSsE6.ckLLd.cn
http://mGZUzEFV.ckLLd.cn
http://D53xMwPV.ckLLd.cn
http://I6thZlYy.ckLLd.cn
http://4QJtCzt0.ckLLd.cn
http://nEOGmw6b.ckLLd.cn
http://HDGS3AjT.ckLLd.cn
http://Y6S7cxFI.ckLLd.cn
http://uGrP7e2m.ckLLd.cn
http://khnFBVSU.ckLLd.cn
http://EIln2PH3.ckLLd.cn
http://BPWoEsfZ.ckLLd.cn
http://yWo79DEU.ckLLd.cn
http://5QKiPccW.ckLLd.cn
http://0krirEs7.ckLLd.cn
http://7oDQgQmW.ckLLd.cn
http://WpgSD141.ckLLd.cn
http://owiTEHzk.ckLLd.cn
http://q77AmO8G.ckLLd.cn
http://k0JbACMP.ckLLd.cn
http://dvgQJq0a.ckLLd.cn
http://M0z3uSmo.ckLLd.cn
http://FF0H32m4.ckLLd.cn
http://OxgWoN2L.ckLLd.cn
http://iRwTokoT.ckLLd.cn
http://1zcFsgn2.ckLLd.cn
http://ME9Lihpn.ckLLd.cn
http://www.dtcms.com/a/386126.html

相关文章:

  • 设计模式-桥接模式04
  • 设计模式-桥接模式01
  • 架构设计java
  • 零知IDE——基于STM32F407VET6的HC-SR505安防监控系统
  • P1439 两个排列的最长公共子序列-普及+/提高
  • C#上位机软件:1.2 工控上位机学习内容和前提条件
  • 非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
  • Linux-> UDP 编程2
  • EPLAN-关联参考
  • 实验部分撰写要求
  • R语言入门课| 08 变量的重编码与重命名
  • Ubuntu 系统下搭建 FTP 服务器及文件传输
  • Field II 超声成像仿真 --2-CPWC (Coherent Plane-Wave Compounding)
  • 具身导航技能分解与重组!SkillNav:基于技能的视觉语言导航智能体混合架构
  • 【ADB】多设备文件传输工具
  • Vue3 通过JSON渲染el-table-column生成完整el-table
  • 传输层协议——TCP协议
  • ChromaDB探索
  • 无人设备遥控器之帧同步技术篇
  • redis如何搭建哨兵集群(docker,不同机器部署的redis和哨兵)
  • C#之开放泛型和闭合泛型
  • typescript+vue+node项目打包部署
  • Python/JS/Go/Java同步学习(第十五篇)四语言“字符串去重“对照表: 财务“小南“纸式去重术处理凭证内容崩溃(附源码/截图/参数表/避坑指南)
  • 数据库基础知识入门:从概念到架构的全面解析
  • 负载均衡器和CDN层面保护敏感文件:防止直接访问.git等敏感目录
  • 微算法科技(NASDAQ: MLGO)研究隐私计算区块链框架,赋能敏感数据流通
  • 分析并预测糖尿病患者 R
  • 【Cesium 开发实战教程】第四篇:动态数据可视化:实时 GPS 轨迹与时间轴控制
  • 大数据毕业设计选题推荐-基于大数据的快手平台用户活跃度分析系统-Spark-Hadoop-Bigdata
  • HTML打包EXE工具中的WebView2内核更新指南