Kubernetes高级调度:污点、容忍度、节点亲和性与Pod亲和性
在Kubernetes集群中,合理的调度策略对于资源的有效利用和应用的性能至关重要。本文将深入探讨Kubernetes中的高级调度机制,包括污点和容忍度、节点亲和性以及Pod亲和性。
1. 污点和容忍度
污点(Taints)和容忍度(Tolerations)是Kubernetes中用于控制Pod调度到特定节点的机制。
1.1 污点的效果
每个污点都有一个关联的效果,主要有以下三种:
- NoSchedule :如果Pod不能容忍该污点,那么它将不会被调度到带有该污点的节点上。
- PreferNoSchedule :这是NoSchedule的软版本,调度器会尽量避免将Pod调度到带有该污点的节点,但如果没有其他合适的节点,仍然会调度到该节点。
- NoExecute :与NoSchedule和PreferNoSchedule不同,它不仅影响调度,还会影响已经在节点上运行的Pod。如果向节点添加NoExecute污点,那些正在该节点上运行且不能容忍该污点的Pod将被驱逐。
1.2 添加自定义污点到节点
假设在一个Kubernetes集群中同时运行生产和非生产工作负载,为了确保非生产Pod不会在生产节点上运行,可以为生产节点添加污点。操作步骤如下:
$ kubectl taint node node1.k8s node-type=
超级会员免费看
订阅专栏 解锁全文
86

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



