- 节点上的污点
pod 对污点的容忍度
节点选择器
- 节点亲缘性
16.1.1 介绍污点和容忍度
主节点需要设置污点.
显示节点的污点信息

格式:
<key>=<value>:<effect>
上面的 taints 中:
- key: node-role.kubernetes.io/master
- value: 无
- effect: NoSchedule
通常容忍这个污点的是系统级 pod.

显示 pod 的污点容忍度

注意:
尽管在 pod 的污点 容 忍度中显示了等号 ,但是在节 点的污点信息中却没有 。当污点 或者 污点 容忍度 中的 value 为 null 时, kubectl 故 意将 污点和污点容忍 度进行不同形式的显示 。
了解污点的效果
- NoSchedule 表示如果 pod 没有容忍这些污点, pod 则不能被调度到包含这些污点的节点上 。
- Pref erNoSchedule 是 NoSchedule 的 一 个宽松的版本,表示尽量阻止pod 被调度到这个节点上,但是如果没有其他节点可以调度, po d 依然会被调度到这个节点上 。
- NoExecute 不同于 NoSchedule 以及 Pref erNoSchedule ,后两者只在调度期间起作用,而 NoExecute 也会影响正在节点上运行着的 pod 。 如果在一个节点上添加了 NoExecute 污点,那些在该节点上运行着的 pod ,如果没有容忍这个 NoExecute 污点,将会从这个节点去除 。
16.1.2 在节点上添加自定义污点
添加污点:
- node1.k8s 是节点名

16.1.3 在 pod 上添加污点容忍度

16.1.4 了解污点和污点容忍度的使用场景
在调度时使用污点和容忍度
- 组织新 pod 的 调度(使用 NoSchedule 效果〉
- 或者定义非优先调度的节点(使用 PreferNoSchedule 效果)
- 甚至是将 己有的 pod 从当前节点剔除 。
配置节点失效之后的 pod 重新调度最长等待时间
你也可以配置 一 个容忍度,用于当某个 pod 运行所在的节点变成 unready 或者unreachable 状态时, Kubemetes 可以等待该 pod 被调度到其他节点的最长等待时间 。

当没有定义这两个容忍度时 ,他们 会自动添加到 pod 上。如果你觉得对于你的pod 来说, 5 分钟太长的话,可以在 pod 描述中显式地将这两个容忍度设置得更短一些。
