我正在学习Kubernetes,并且面对一个概念性的问题,新的污点模型比简单节点选择器有什么好处。
文档讨论了一个用例,其中一组开发人员可能拥有像dedicated=groupA:NoSchedule
这样的污点对一组pod的专有权。但我认为我们可以通过一个简单的nodeSelector做同样的事情。
更具体地说,效果对这种污点的作用是什么。为什么不简单地像其他Kubernetes那样的标签。
答案 0 :(得分:3)
节点选择器会影响单个pod模板,要求调度程序将其放在一组节点上。 NoSchedule污染影响所有pod,要求调度程序阻止所有pod在那里安排。
当pod需要来自节点的内容时,节点选择器很有用。例如,请求具有GPU的节点。当需要为特殊工作负载保留节点时,节点污染很有用。例如,一个节点应该只运行将使用GPU的pod(因此GPU节点不会填充不使用它的pod)。
有时它们也像上面的例子一样有用。您希望节点仅具有使用GPU的pod,并且您希望将需要GPU的pod安排到GPU节点。在这种情况下,您可能希望使用dedicated=gpu:NoSchedule
对节点进行污染,并在窗格模板中添加污点容忍度和节点选择器。