K8S中的污点(taints)与容忍度(tolerations)

本文介绍了Kubernetes中的污点(taints)和容忍度(tolerations)概念。污点是节点上的键值型数据,使得节点拒绝某些Pod调度,除非Pod有对应的容忍度。容忍度是Pod上的配置,允许其在带有特定污点的节点上运行。文章通过实例展示了如何设置和查看节点的污点,以及如何管理Pod的容忍度。
摘要由CSDN通过智能技术生成

目录

名词解释

环境

污点语法

举例说明


名词解释

污点(taints)是定义在节点上的键值型数据,如果一个节点上设置了污点,那么此节点将拒绝Pod调度运行在上面,除非该Pod对象具有接纳节点污点的容忍度。


容忍度(tolerations)是定义在Pod对象上的键值型数据,用于配置其可容忍的节点污点,而且调度器仅能将Pod对象调度至其能够容忍该节点污点的节点之上。

环境

kubernetes版本:v1.23.7

污点语法

key=value:Effect

可以分配三个不同的值effect:

NoSchedule:如果至少有一个未被忽略的污点NoSchedule生效,那么Kubernetes不会将pod调度到该节点上。已经存在的不容忍这种污点的Pod不会被从该节点驱逐或删除。但是除非有匹配的容忍度,否则不会在这个节点上安排更多的 Pod,这是一个硬约束。

PreferNoSchedule:如果至少有一个不可容忍的污点有影响,Kubernetes将尝试不在节点上调度Pod。但是如果有一个pod可以容忍一个taint,它可以被调度。这是一个软约束。

NoExecute:如果至少有一个未被忽略的NoExecute taint生效,那么Pod将从节点中被逐出(如果它已经在节点上运行),并且不会被调度到节点上(如果它还没有在节点上运行)节点。这是一个强约束。

可以对单个节点应用多个污点,对单个Pod应用多个容忍度。

举例说明

向节点添加污点的命令

kubectl taint nodes <node_name> key=value:effect

查看pod运行在哪些节点上

kubectl get pod -A -o wide

如果是:

Taints:             <none>

表示节点没有设置污点

举例:在nodes节点上打上污点

kubectl taint nodes master-k8s-6 devops=ops:NoExecute

 去除节点上的污点

kubectl taint nodes master-k8s-6 devops=ops:NoExecute-

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Echo^?

你的关注是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值