当前位置:   article > 正文

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

k8d taints

目录

名词解释

环境

污点语法

举例说明


名词解释

污点(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-

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/563695
推荐阅读
相关标签
  

闽ICP备14008679号