23.高级调度机制之topologyKey
上一章节中,我们谈到了预选和优选策略,也谈到了节点亲和度和pod亲和度,最后还抛出了一个关键字段:topologyKey。 这一章节,让我们来全面学习一下这个字段的原理和用法。
1. 什么是topologyKey?
首先,我们得先了解一下,topologyKey是什么?
原则上,topologyKey可以是任何合法的标签密钥。 但是,出于性能和安全性原因,topologyKey受到以下一些限制:
1>对于亲和关系,以及pod反亲和的硬亲和条件requiredDuringSchedulingIgnoredDuringExecution时,topologyKey不允许为空; 2>由于准入控制器LimitPodHardAntiAffinityTopology的存在,如果计划在pod反亲和的requiredDuringSchedulingIgnoredDuringExecution中使用,则需要修改准入控制器或者直接禁用它; 3>对于pod反亲和中的软亲和:preferredDuringSchedulingIgnoredDuringExecution,如果没指定topologyKey的值,将会使用kubernetes.io/hostname, failure-domain.beta.kubernetes.io/zone和failure-domain.beta.kubernetes.io/region这三个内建的字段值; 除上述情况外,topolo
|