k8s之pod的调度之污点与容忍污点,什么是污点? 如何容忍污点

在 Kubernetes 中,污点(Taint)容忍(Toleration) 是用于控制 Pod 调度到特定节点的重要机制。污点允许节点拒绝某些 Pod 的调度,而容忍则允许 Pod 忽略节点的污点,从而调度到特定节点上。


1. 污点(Taint)

1.1.污点的作用

污点是节点上的一个标记,用于限制哪些 Pod 可以调度到该节点。通常用于以下场景:

  • 专用节点:某些节点专门用于运行特定类型的 Pod(如 GPU 节点)。
  • 节点维护:标记节点为不可调度状态,以便进行维护。
  • 故障隔离:将故障节点标记为不可调度,避免 Pod 调度到该节点。

1.2.污点的组成

每个污点由以下三部分组成:

  • Key: 污点的键(必填)。
  • Value: 污点的值(可选)。
  • Effect: 污点的效果(必填),有以下三种:
    • NoSchedule: 禁止调度新的 Pod 到该节点(已运行的 Pod 不受影响)。
    • PreferNoSchedule: 尽量不调度新的 Pod 到该节点(非强制)。
    • NoExecute: 禁止调度新的 Pod 到该节点,并且驱逐已运行但不满足容忍的 Pod。
1.3.污点的配置

通过 kubectl taint 命令为节点添加污点。

查看帮助文档

[root@master ~]# kubectl taint --help

语法:

kubectl taint nodes <节点名称> <key>=<value>:<effect>

示例:

  1. 为节点 node-1 添加一个污点带有值的,禁止调度新的 Pod:

    [root@master ~]# kubectl taint nodes node-1 dedicated=special:NoSchedule
    node/node-1 tainted
    
    [root@master ~]# kubectl describe node node-1 | grep Taint
    Taints:             dedicated=special:NoSchedule
    
  2. 为节点 node-2 添加一个污点,尽量不调度新的 Pod:

    [root@master ~]# kubectl taint nodes node-2 gpu:PreferNoSchedule
    node/node-2 tainted
    [root@master ~]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值