| nodeSelector | key: value 硬条件,最易用 |
|---|---|
| nodeAffinity.required | 硬条件 + In/NotIn/Exists 运算符 |
| nodeAffinity.preferred | 软条件:满足更好,不满足也调度 |
| podAntiAffinity | preferredDuringScheduling 让副本跨节点分散 |
| topologySpreadConstraints | 按 zone/node 均匀分布的新一代方案 |
组合示例
组合示例
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: disktype
operator: In
values: [ssd]
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchLabels: { app: web }
topologyKey: kubernetes.io/hostname
硬条件写太死会把 Pod 卡成 Pending:关键业务用 preferred 保底可调度,再叠加 PDB 保障可用性。