Kubernetes--Taints(污点)和Tolerations(容忍)

本文介绍了Kubernetes中的Taints和Tolerations机制,用于控制Pod的调度。Taints让Node拒绝Pod运行,而Tolerations允许特定Pod在有Taint的Node上运行。通过设置Taints和Tolerations,可以实现如独占节点、避免Pod调度到特定节点等场景。文中还提供了测试例子来说明如何配置和使用Taints与Tolerations。
摘要由CSDN通过智能技术生成

一、Taints和Tolerations

   Taint让Node拒绝Pod的运行,被标记为Taint的节点就是存在问题的节点,比如磁盘要满、资源不足、存在安全隐患要进行升级维护,希望新的Pod不会被调度过来,但被标记为Taint的节点并非故障节点,仍是有效的工作节点,所以仍需将某些Pod调度到这些节点上时,可以通过使用Toleration属性来实现。

    在默认情况下,在Node上设置一个或多个Taint之后,除非Pod明确声明能给容忍这些污点,否则无法在这些Node上运行。可以使用kubectl taint命令为Node设置Taint信息:

kubectl taint nodes node1s key=value:NoSchedule #给Node节点加上Taint,该Taint的键为key,值为value,Taint效果是NoSchedule

     这个设置为node1加上了一个Taint。该Taint的键为key,值为value,Taint的效果是NoSchedule。这意味着除非Pod明确声明可以容忍Taint,否则不会被调度到node1上。然后,需要在Pod上声明Toleration。下面的两个Toleration都被设置为可以容忍(Tolerate)具有该Taint的Node,使得Pod能给被调度到node1上:

tolerations:
- key: "key"
  operation: “Equal”
  value: "value"
  effect: "NoSchedule"

tolerations:
- key: "key"
  operation: "Exists"
  effect: "NoSchedule"
  Pod的Toleration声明中的key和effect需要与Taint的设置保持一致,并且满足以下条件:
  • operator的值是Exists(无需指定value)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值