起因: 今天在部署组件的时候,发现组件的pod一直处于Pending状态,报错显示的原因是:不满足Pod拓扑分布约束,看了代码发现是原来同事给组件新增了Pod拓扑约束。对于Pod拓扑约束,我先前并没有认真了解过,刚好可以借这个排查问题的机会深入了解什么是Pod拓扑约束。
文档参考主要是上述两篇k8s官方的文档,建议英文功底好的可以直接看第二篇文档。
topologySpreadConstraints是一个Pod Spec层级的字段,其定义的结构体如下:
spec:
topologySpreadConstraints:
- maxSkew:
topologyKey:
whenUnsatisfiable:
labelSelector: