在大多数业务场景下Kubernetes的默认调度策略都工作得很好,如 :在将一个Pod调度到节点之前,会首选确保改节点有足够的资源(如内存),并且它会试图平衡所有节点资源的使用率。
但是有时候我们会试图控制Pod的调度方式,比如:我们希望一些pod只会被调度到特定硬件的节点上,或者我们希望将通信比较频繁的service(被这些service选择到的pod)被调度到一个节点或者一个机房到节点上,又或者我们希望能指定一组节点提供给特定的用户的业务来使用。总结起来,也就是说我们希望我们能更清楚的知道应用在Kubernetes集群上到底是如何被调度或者部署的。所以从Kubernetes1.6开始,给我们提供了四种高级调度策略:node affinity/anti-affinity, taints and tolerations, pod affinity/anti-affinity, custom schedulers
,这些特性在Kubernetes1.6中处于beta阶段。