从相亲的角度理解 K8S 的 Node Affinity, Taints 与 Tolerations

Posted dudu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从相亲的角度理解 K8S 的 Node Affinity, Taints 与 Tolerations相关的知识,希望对你有一定的参考价值。

这是昨天晚上阅读园子里的2篇 k8s 博文时产生的想法,在随笔中记录一下。

这2篇博文是 K8S调度之节点亲和性K8S调度之Taints and Tolerations

如果我们把 node 当作女方,pod 当作南方,scheduler 当作媒人,从相亲的角度理解这3个概念,不仅豁然开朗,而且很容易记住。

node affinity 就是女方告诉媒人自己喜欢什么类型的男生,介绍这些类型的男生给她。

taints 就是女方告诉媒人自己有哪些缺点,不能容忍这些缺点的男生请走开。

tolerations 就是男方告诉媒人自己可以容忍女生的哪些缺点,有这些缺点的女生可以帮他介绍。

比如 k8s master 节点默认的 taints 是 NoSchedule ,联系到相亲场景就是女方告诉媒人不要介绍任何男生给她。

$ kubectl describe node k8s-master0 | grep Taints
Taints:             node-role.kubernetes.io/master:NoSchedule

而有些男生偏偏明知山有虎,偏上虎山行,告诉媒人就帮他找不需要媒人介绍的女生。

tolerations:
  - key: node-role.kubernetes.io/master
    effect: NoSchedule

如果一个 deployment 配置添加了上面的声明,就可以部署 pod 到 master 节点上。

以上是关于从相亲的角度理解 K8S 的 Node Affinity, Taints 与 Tolerations的主要内容,如果未能解决你的问题,请参考以下文章

从npm 角度理解 mvn 的 pom.xml

深入理解K8S——Pod Preemption资源抢占

从网络/TCP/HTTP 连接的角度来看,Node.js 是如何工作的? WCF 可以模拟这个吗?

从微服务角度对比SpringCloud与Dubbo,K8S

5分钟让你理解K8S必备架构概念,以及网络模型

k8s上的基础概念和术语