参考地址:
系统环境:
- kubernetes 版本:1.16.6
一、介绍
在 Kubernetes 中,节点亲和性 NodeAffinity 是 Pod 上定义的一种属性,能够使 Pod 按我们的要求调度到某个节点上,而 Taints(污点) 则恰恰相反,它是 Node 上的一个属性,可以让 Pod 不能调度到带污点的节点上,甚至会对带污点节点上已有的 Pod 进行驱逐。当然,对应的 Kubernetes 可以给 Pod 设置 Tolerations(容忍) 属性来让 Pod 能够容忍节点上设置的污点,这样在调度时就会忽略节点上设置的污点,将 Pod 调度到该节点。一般时候 Taints 通常与 Tolerations 配合使用。

二、污点 taints
1、查看污点
污点是设置在 Node 节点上,所以我们可以通过查看节点信息来查找该节点是否设置污点以及对污点的信息,首先使用 kubectl get node 命令查看节点列表:
$ kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 102d v1.16.6
k8s-node-2-12 Ready <none> 102d v1.16.6
k8s-node-2-13 Ready <none> 102d v1.16.6
污点信息可以通过 kubectl describe nodes {Node名称} 命令,查看输出节点描述信息一栏中 Taints 标题后面的内容,即是污点的信息:
$ kubectl describe nodes k8s-master
...
CreationTimestamp: Sat, 23 Nov 2019 00:52:45 +0800
Taints: node-role.kubernetes.io/master:PreferNoSchedule
Unschedulable: false
...
污点内容一般组成为 key、value 及一个 effect 三个元素,表现为:
<key>=<value>:<effect>
上面 value 可以设置为空,那么组成形式为 :
由上可以点到 master 节点的污点内容为:
node-role.kubernetes.io/master:PreferNoSchedule
- key:node-role.kubernetes.io/master<

本文介绍了Kubernetes中节点的污点与Pod的容忍机制,包括如何设置与删除污点,Pod如何设置容忍来调度到特定节点,以及容忍时间的概念。同时探讨了污点的不同效果对节点上Pod的影响。
最低0.47元/天 解锁文章
3824

被折叠的 条评论
为什么被折叠?



